输入n,输出n行n列的由+
和.
组成的正方形,其中最外面一圈全是+
,第二圈全是.
,...,对于第i圈,如果i是奇数,那么全是+
,否则全是.
。
输入格式
一行,一个整数n。
输出格式
n行,为满足题目要求的正方形。注意不要有行末空格。
样例输入
10
样例输出
++++++++++
+........+
+.++++++.+
+.+....+.+
+.+.++.+.+
+.+.++.+.+
+.+....+.+
+.++++++.+
+........+
++++++++++
数据范围
对于100%的数据,保证2≤n≤100
#include<bits/stdc++.h>
using namespace std;
#define x first
#define y second
#define rep(i,a,n) for (int i = a; i < n; i ++ )
#define repn(i,a,n) for (int i = a; i <= n; i ++ )
#define pb push_back
typedef long long ll;
typedef pair<int,int> PII;
ll gcd(ll a,ll b) { return b ? gcd(b,a % b) : a; }
const int N = 110;
char g[N][N];
bool st[N][N];
int main()
{
int n;
cin >> n;
repn(i, 1, n)
{
char c;
if (i % 2) c = '+';
else c = '.';
for (int j = 1; j <= n; j ++ )
{
if(!st[i][j])
{
g[i][j] = c;
st[i][j] = true;
}
}
for (int j = 1; j <= n; j ++ )
{
if(!st[n + 1 - i][j])
{
g[n + 1 - i][j] = c;
st[n + 1 - i][j] = true;
}
}
for (int j = 1; j <= n; j ++ )
{
if(!st[j][i])
{
g[j][i] = c;
st[j][i] = true;
}
}
for (int j = 1; j <= n; j ++ )
{
if(!st[j][n - i + 1])
{
g[j][n - i + 1] = c;
st[j][n - i + 1] = true;
}
}
}
repn(i, 1, n)
repn(j, 1, n)
cout << g[i][j];
cout << endl;
return 0;
}