NYOJ 33-蛇形填数

33-蛇形填数


内存限制:64MB  时间限制:3000ms  特判: No

通过数:23  提交数:49  难度: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,a[101][101]={0},x,y,c=0;
	scanf("%d",&n);
	x=0;y=n-1;
	c=a[x][y]=1;
	while (c<n*n)//最大数为n*n
	{
		while (x+1<n&&!a[x+1][y])//向下
			a[++x][y]=++c;
		while (y-1>=0&&!a[x][y-1])//向左
			a[x][--y]=++c;
		while (x-1>=0&&!a[x-1][y])//向上
			a[--x][y]=++c;
		while (y+1<n&&!a[x][y+1])//向右
			a[x][++y]=++c;
	}	
	for (x=0;x<n;x++)
	{
	    for (y=0;y<n;y++)
		printf("%d ",a[x][y]);
	    printf("\n");
	}
 	return 0;
}
下,下,下,左,左,左,上,上,上,右,右,下,下,左,上

猜你喜欢

转载自blog.csdn.net/qq_40046426/article/details/80946962