蛇形填数

蛇形填数

时间限制: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
题目转自南阳理工学院:http://acm.nyist.edu.cn/JudgeOnline/problemset.php

个人代码(以下原创)

#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;
}




posted @ 2018-01-28 23:29  focus5679  阅读(126)  评论(0编辑  收藏  举报