TZC OJ 1352 仙人球的残影

此题可参考刘汝佳的《算法竞赛入门经典》中的蛇形填数

AC CODE:

 1 #include <stdio.h>
 2 #include <string.h>
 3 #define Max 30
 4 
 5 int main()
 6 {
 7     int n, x, y, tot=0;
 8     int arry[Max][Max];
 9     while(scanf("%d",&n)!=EOF)
10     {
11         memset(arry, 0, sizeof(arry));
12         tot = arry[x=0][y=0] = 1;
13         
14         while(y+1<n && !arry[x][y+1]) arry[x][++y] = ++tot;
15         while(x+1<n && !arry[x+1][y]) arry[++x][y] = ++tot;
16         while(y-1>=0 && !arry[x][y-1]) arry[x][--y] = ++tot;
17         while(x-1>=0 && !arry[x-1][y]) arry[--x][y] = ++tot;
18 
19         int i, j;
20         for(i=0;i<n;++i)
21         {
22             for(j=0;j<n;++j)
23                 if(arry[i][j])
24                     printf("%3d", arry[i][j]);
25                 else printf("   ");
26             printf("\n");
27         }
28     }
29     
30     return 0;
31 }

 

你可能感兴趣的:(OJ)