3918 - the snake

通过次数

0

提交次数

0

时间限制 : 1 秒 内存限制 : 128 MB

在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

C++解答

#include <stdio.h>
int main()
{
int a[100][100],i,j=1,k=0,n,m;
scanf("%d",&n);
m=n;
while(1)
{
for(i=k;i<n;i++)
a[i][n-1]=j++;
if(j==m*m+1) break;
for(i=n-2;i>=k;i--)
a[n-1][i]=j++;
for(i=n-2;i>=k;i--)
a[i][k]=j++;
for(i=k+1;i<n-1;i++)
a[k][i]=j++;
n--;
k++;
}
for(i=0;i<m;i++)
{
printf("%d",a[i][0]);
for(j=1;j<m;j++)
printf(" %d",a[i][j]);
printf("\n");
}
}