#include<stdio.h>
int main()
{
int n,i,j,k=1,p,q;
scanf("%d",&n);
int m=n;
int a[n][n];
i=0,j=n-1,p=0,q=1;
while(k<=n*n)
{
while(i<m) a[i++][j]=k++;
while(j>p) a[i-1][--j]=k++;
while(i>q) a[--i-1][j]=k++;
while(j<m-3) a[i-1][++j]=k++;
--m;
i=p,j=m-1,p++,q++;
}
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
printf("%d ",a[i][j]);
printf("\n");
}
return 0;
}
P1114 回文方阵
题目描述
在一个 n×n 的方阵中填入 n^2 个数,构成回文方阵
输入描述
输入一个 正整数 n, 占一行
输出描述
输出一个 nxn 的螺旋方阵,每行的数字之间用 1 个空格分开。
样例输入
5
样例输出
13 14 15 16 1
12 23 24 17 2
11 22 25 18 3
10 21 20 19 4
9 8 7 6 5