当前位置: 移动技术网 > 科技>人工智能>区块链 > 1325:星号阵列3

1325:星号阵列3

2020年10月25日  | 移动技术网科技  | 我要评论
1325:星号阵列3描述输出一个边长为 m 的正六边形。输入一个正整数 m 代表正六边形的边长。(2 <= m <= 20)输出一个边长为 m 的正六边形,每行最后一个星号后面没有空格,最后一行输出完成以后也要换行。样例输入3样例输出 ***** * * * * * * *****#include

1325:星号阵列3

描述
输出一个边长为 m 的正六边形。
输入
一个正整数 m 代表正六边形的边长。(2 <= m <= 20)
输出
一个边长为 m 的正六边形,每行最后一个星号后面没有空格,最后一行输出完成以后也要换行。
样例输入
3
样例输出

                *****
               *     *
              *       *
               *     *
                *****
#include <iostream>
using namespace std;
int main()
{
	int m;
	cin >> m;
	for (int i = 1; i <= 2*m-1; i++)
	{
		for (int j = 1; j <= 3*m-2; j++)
		{
			if (i + j == m + 1 || ((m <= j && j <= 2 * m - 1) && (i == 1)) || ((m <= j && j <= 2 * m - 1) && (i == 2 * m - 1)) || i + j == 4 * m - 2 || i == j + m - 1 || j == i + 2 * m - 2)
			{
				cout << "*";
			}
			else if (i + j < m + 1 || (i > m && i <= 2 * m - 1 && i > j + m - 1) || (i + j > m + 1 && i < j + m - 1 && i>1 && i < 2 * m - 1 && i + j < 4 * m - 2 && i < j + m - 1 && j < i + 2 * m - 2))
			{
				cout << " ";
			}
		}
		cout << endl;
	}
	return 0;
}

总结
鄙人不才…只能想出用数学的暴力求解…这个规律有点把我自己绕晕了…不过最后还是磕磕碰碰地写出来了…若有更好的方法请指正0.0

本文地址:https://blog.csdn.net/Jackey_tao/article/details/109269120

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网