hpu 方框

方框

Description

用'*'打印出一个nxn的字符图形(1<=n<=100).

Input

多组输入。每行输入一个n,输入EOF结束文件.

Output

输出一个满足题意的图形.

Sample Input 1

扫描二维码关注公众号,回复: 2783356 查看本文章
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;

}

猜你喜欢

转载自blog.csdn.net/zzzanj/article/details/81634414
今日推荐