2013年11月2日 星期六

[ZJ] a628 8. Number Spiral


#include<stdio.h>
#include<string.h>
int s[105][105]={0};
int main(){
    int n,x,y,k,i,j;
    while(scanf("%d",&n)!=EOF){
        memset(s,0,sizeof(s));
        x=n-1,y=n-1,k=n*n-2,i,j;
        s[x][y]=n*n-1;
        while(k>=0){
            while(y+1<n && !s[x][y+1]) s[x][++y]=k--;
            while(x+1<n && !s[x+1][y]) s[++x][y]=k--;
            while(y-1>=0 && !s[x][y-1]) s[x][--y]=k--;
            while(x-1>=0 && !s[x-1][y]) s[--x][y]=k--;
        }
        for(i=0;i<n;i++){
            for(j=0;j<n;j++)
                printf("%4d",s[i][j]);
            puts("");
        }
    }
}

沒有留言:

張貼留言