您的位置:首页 > 其它

nyoj33蛇形填数

2014-11-01 20:19 288 查看


蛇形填数

时间限制: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 n;
scanf("%d", &n);
int i, j, num, a[101][101] = {0};
num = 1;
i = 0;
j = n - 1;
a[i][j] = num;
while(num < n * n)
{
while(i < n - 1 && a[i + 1][j] == 0)
a[++i][j] = ++num;
while(j > 0 && a[i][j - 1] == 0)
a[i][--j] = ++num;
while(i > 0 && a[i - 1][j] == 0)
a[--i][j] = ++num;
while(j < n - 1 && a[i][j + 1] == 0)
a[i][++j] = ++num;
}
for(i = 0; i < n; i++)
{
for(j = 0; j < n; j++)
{
printf("%d ", a[i][j]);
}
printf("\n");
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: