金字塔图案
金字塔图案
http://www.nowcoder.com/questionTerminal/d84e8339f9444bb6b29bd3f227c8e538
分析:
对于本题而言,首先可以明确的是n代表需要输出多少行,对于第i行而言,首先需要输出n-i个空格,接着星号和空格交替打印,题解中先计算星号和空格的个数然后循环打印更改标志位flag,最后注意最后一个*后面需要加上空格和换行。
题解:
#include <bits/stdc++.h> using namespace std; int main() { int n = 0; while(scanf("%d", &n) != EOF) { //scanf("%d", &n); int space = n - 1; for(int i = 1; i <= n; ++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; }
总结:
复杂图案的打印,对于这类题可以逐行拆解,找出规律即可。