空心正方形图案
空心正方形图案
http://www.nowcoder.com/questionTerminal/72347ee949dc47399186ee183632f303
分析:
根据多行输入的结果,特殊处理第一行和最后一行,对于中间的行的空格为2*n-3,然后打印首尾的星号即可。
题解:
#include <bits/stdc++.h>
using namespace std;
int main() {
int n = 0;
//循环读入n
while(scanf("%d", &n) != EOF) {
//外循环遍历每一行
for(int i = 0; i < n; ++i) {
//对第一行和最后一行特殊处理,输出n个星号
if(i == 0 || i == n-1) {
for(int j = 0; j < n; ++j) {
printf("* ");
}
} else { //中间行只要首尾输出星号,中间用空格填充即可
printf("*");
for(int j = 0; j < 2*n-3; ++j)
printf(" ");
printf("* ");
}
//换行处理
printf("\n");
}
}
return 0;
}总结:
复杂图案的输出,找出每一行规律,然后根据规律写成循环即可。