题目描述
问题:输入n,输出正倒n层星号三角形。首行顶格,星号间有一空格,效果见样例
输入样例:
3
输出样例:
输入样例:
3
输出样例:
* * * * * * * * * * *数据规模 1<= n <=50
思路:
此题目与B1027有些类似;
只是将每行输出的偶数位的字符改为了空格;
代码如下:
#include <cstdio>
int main()
{
int n;
while (scanf ("%d", &n) != EOF) {
for (int i = 0; i < n; i++) {
for (int k = i; k > 0; k--) {
printf (" "); //输出每行空格数;
}
for (int j = (n - i) * 2 - 1; j > 0; j--) { //字符偶数位输出空格,奇数位输出*;
if (j % 2 == 1) printf ("*"); //输出上三角;
else printf (" ");
}
printf ("\n");
}
for (int i = n - 2; i >= 0; i--) { //输出下三角;
for (int k = i; k > 0; k--) {
printf (" ");
}
for (int j = (n - i) * 2 - 1; j > 0; j--) {
if (j % 2 == 1) printf ("*");
else printf (" ");
}
printf ("\n");
}
}
return 0;
}