分析:
打印图案这类题都具有很高的相似性,本题可以参考我之前打印金字塔的题解,链接:https://blog.nowcoder.net/n/86a42f259a0f44d6836d173a05e65141
核心思想一样,连代码都类似,需要修改的地方为每行一开始打印的空格space的初始化,同时每一行打印后不是自减1而是自减2。
题解:
#include <bits/stdc++.h>
using namespace std;
int main() {
int n = 0;
while(scanf("%d", &n) != EOF) {
int space = n + n - 2;
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 -= 2;
}
}
return 0;
}总结:
打印图案类题型,根据在之前题解的基础上适量修改,根据题目要求更改输出方式即可,灵活举一反三。

京公网安备 11010502036488号