描述
编写程序,将1到n*n之间的每个整数,从1开始,按照顺序依次填入到n阶蛇形方阵(具体见样例)。
输入
在一行中给出一个正整数N(<100)。
输出
输出N×N的蛇形方阵。每行N个数字,每个数字占5位。
输入样例 1
5
输出样例 1
1 3 6 10 15 2 5 9 14 19 4 8 13 18 22 7 12 17 21 24 11 16 20 23 25
输入样例 2
6
输出样例 2
1 3 6 10 15 21 2 5 9 14 20 26 4 8 13 19 25 30 7 12 18 24 29 33 11 17 23 28 32 35 16 22 27 31 34 36
#include<stdio.h>
int main(int argc,char const*argv[])
{
int n,s=1;
scanf("%d",&n);
int a[100][100]={0};
int i=0, j=0;
int ni,nj,k=1;
while(s<=n*n)
{
a[i][j]=s;
ni=i,nj=j;
i--,j++;
if(i<0||j>n-1)
{ if(k<n)
{i=ni+k;
j=0; }
else
{
j=k+1-n;
i=n-1;
}
k++;
}
s++;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
printf("%5d",a[i][j]);
}
printf("\n");
}
}