在n*n方阵里填入1,2,3,…,n*n, 要求填成蛇形. 例如 n=4 时方阵为:
10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4
Standard Input有多组测试数据. 输入的第一行是整数T(1<=T<=20), 表示随后测试数据的组数. 每组测试数据占一行, 由正整数n组成. N<=20.
Standard Output对应每组测试数据, 输出对应的蛇形矩阵, 每个数占四位, 右对齐.
Samples| Input | Output |
|---|---|
5 1 2 3 4 5 | 1 4 1 3 2 7 8 1 6 9 2 5 4 3 10 11 12 1 9 16 13 2 8 15 14 3 7 6 5 4 13 14 15 16 1 12 23 24 17 2 11 22 25 18 3 10 21 20 19 4 9 8 7 6 5 |
| Problem ID | 1907 |
| Problem Title | 蛇形填数 |
| Time Limit | 1000 ms |
| Memory Limit | 64 MiB |
| Output Limit | 64 MiB |
| Source | wxiaoping - 2018.4.24 |
#include#include #define N 20 int a[N][N]; void fun(int n) { memset(a,0,sizeof(a));//矩阵置0 int sum=1; int i=0,j=n-1; a[0][n-1]=1; while(sum =0&&a[i][j-1]==0)//向左移动 { a[i][--j]=++sum; } while(i-1>=0&&a[i-1][j]==0)//向上 { a[--i][j]=++sum; } while(j+1


![[C语言]右上角起顺时针蛇形方阵 [C语言]右上角起顺时针蛇形方阵](http://www.mshxw.com/aiimages/31/849706.png)
