分析:
本题与之前的打印金字塔类似
由于是倒着显示,这里与之前不同的是更改了循环的初值并自减,然后记录当前行需要打印的空格space自增即可。
题解:
#include <bits/stdc++.h>
using namespace std;
int main() {
int n = 0;
while(scanf("%d", &n) != EOF) {
//scanf("%d", &n);
int space = 0;
for(int i = n; i > 0; --i) {
for(int j = 0; j < space; ++j)
printf(" ");
int count = i+i-1;
bool flag = true;
for(int k = 0; k < count; ++k){
if(flag) {
printf("*");
if(k == count-1)
printf(" ");
}
else
printf(" ");
flag = !flag;
}
printf("\n");
space++;
}
}
return 0;
}总结:
复杂图案的打印,根据类似题型进行修改即可,实现举一反三。

京公网安备 11010502036488号