33-蛇形填数
内存限制:64MB 时间限制:3000ms 特判: No
通过数:167 提交数:377 难度: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, i, j, x, y, a[101][101], flag=1;
scanf("%d", &n);
for(i=1; i<=(n+1)/2; i++) //知道有几圈;
{
for(j=i; j<=n-i+1; j++) //右侧的数;
{
a[j][n-i+1]=flag;
flag++;
}
for(j=n-i; j>=i; j--) //底下的数;
{
a[n-i+1][j]=flag;
flag++;
}
for(j=n-i; j>=i; j--) //左侧的数;
{
a[j][i]=flag;
flag++;
}
for(j=i+1; j<n-i+1; j++) //上层·的数;
{
a[i][j]=flag;
flag++;
}
}
for(x=1; x<=n; x++) //输出;
{
for(y=1; y<=n; y++)
{
printf("%-d ", a[x][y]);
}
printf("\n");
}
return 0;
}