分析:
本题与之前的打印金字塔类似
由于是倒着显示,这里与之前不同的是更改了循环的初值并自减,然后记录当前行需要打印的空格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; }
总结:
复杂图案的打印,根据类似题型进行修改即可,实现举一反三。