1325:星号阵列3

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

(0)
上一篇 2022年3月23日
下一篇 2022年3月23日

相关推荐