方框
Description
用'*'打印出一个nxn的字符图形(1<=n<=100).
Input
多组输入。每行输入一个n,输入EOF结束文件.
Output
输出一个满足题意的图形.
Sample Input 1
1 2 5 6 10 11
Sample Output 1
* ** ** ***** * * * * * * * ***** ****** * * * ** * * ** * * * ****** ********** * * * ****** * * * * * * * ** * * * * ** * * * * * * * ****** * * * ********** *********** * * * ******* * * * * * * * *** * * * * * * * * * * *** * * * * * * * ******* * * * ***********
思路:
水题,一个图案套着一个图案;
用while直接实现;
#include <bits/stdc++.h>
#define maxn 100005
typedef long long ll;
using namespace std;
ll mod = 1e9 + 7;
char a[1005][1005];
int main()
{
ll n;
while(cin >> n)
{
memset(a,' ',sizeof(a));
ll k = n;
ll be = 3;
ll en = n - 2;
for(int i = 1; i <= n; i ++)
{
a[i][n] = '*';
a[1][i] = '*';
a[i][1] = '*';
a[n][i] = '*';
while(k > 4)
{
k -= 4;
for(int i = be; i <= en; i ++)
{
a[i][en] = '*';
a[be][i] = '*';
a[i][be] = '*';
a[en][i] = '*';
}
be += 2;
en -= 2;
}
}
for(int i = 1; i <= n; i ++)
{
for(int j = 1; j <= n; j ++)
{
cout << a[i][j];
}
cout << endl;
}
}
return 0;
}