蛇形填数
蛇形填数
时间限制:3000 ms | 内存限制:65535 KB
难度:3
- 描述
- 在n*n方陈里填入1,2,...,n*n,要求填成蛇形。例如n=4时方陈为:
10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4
- 输入
- 直接输入方陈的维数,即n的值。(n<=100)
- 输出
- 输出结果是蛇形方陈。
- 样例输入
-
3
- 样例输出
-
7 8 1 6 9 2 5 4 3
个人代码(以下原创)
#include<stdio.h>
int main()
{
int a[100][100];
int b = 1;
int x, y;
int n;
scanf("%d", &n);
y = n;
x = n-1;
int i;
int j = n;
while (b <= n*n)
{
i = j;
while (b <= n*n && i--)
{
a[x][--y] = b++;
}
i = j - 1;
while (b <= n*n && i--)
{
a[--x][y] = b++;
}
i = j - 1;
while (b <= n*n && i--)
{
a[x][++y] = b++;
}
i = j - 2;
while (b <= n*n && i--)
{
a[++x][y] = b++;
}
j = j - 2;
}
for (j = n - 1 ; j >= 0; j--)
{
for (i = 0; i < n; i++)
{
if (i == n-1)
{
printf("%d\n", a[i][j]);
break;
}
printf("%d ", a[i][j]);
}
}
return 0;
}