HDU 2153

来源:互联网 发布:安装解压版mysql步骤 编辑:程序博客网 时间:2024/06/04 23:25

这是一道水题!利用一个二维数组就可以了!

#include <iostream>
#include <cstdio>
#include <cstring>
using namespace std;
int main()
{
    int n,a[11][11],i,j,b,l;
    while(scanf("%d",&n)!=EOF)
    {
        memset(a,0,sizeof(a));
        int x=0;
        for( i=0; i<n; i++)
            a[0][i]=++x;
        int k=i-1;
        for( j=1; j<n; j++)
            a[j][k]=++x;
        for( b=j-2; b>=0; b--)
            a[j-1][b]=++x;
        for( l=j-2; l>0; l--)
            a[l][0]=++x;


        for(int p=0; p<n; p++)
        {
            for(int q=0; q<n; q++)
            {
                if(a[p][q])
                    printf("%3d",a[p][q]);
                else
                    printf("   ");//注意这里的空格也是三个字符!
               if(q==n-1)
                printf("\n");
            }
        }
    }
    return 0;
}