特殊的正方形
题目
输入n,输出n行n列的由+和.组成的正方形,其中最外面一圈全是+,第二圈全是.,…,对于第i圈,如果i是奇数,那么全是+,否则全是.。
输入格式
一行,一个整数n。
输出格式
n行,为满足题目要求的正方形。注意不要有行末空格。
样例输入
10
样例输出
++++++++++
+........+
+.++++++.+
+.+....+.+
+.+.++.+.+
+.+.++.+.+
+.+....+.+
+.++++++.+
+........+
++++++++++
数据范围
对于100%的数据,保证2≤n≤100。
解法
我们先开一个数组char c【100】【100】;
我们一圈一圈的存,或者说一块一块的存。
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
char c[100][100];
scanf("%d",&n);
int q=n/2;
if(n%2==1)q++;
for(int t=0;t<q;t++){
for(int i=t;i<n-t;i++){
for(int j=t;j<n-t;j++){
if(t%2)c[i][j]='.';
else c[i][j]='+';
}
}
}
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
printf("%c",c[i][j]);
}
printf("\n");
}
return 0;
}