在一个 n×n 的方阵中,填入 1,2,3……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
在一个 n×n 的方阵中,填入 1,2,3……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
#include<stdio.h>
int array[90][90];
int main()
{
int n;
scanf("%d",&n);
int k = 1,x = 1,y = n-1,i,j;
while(k<=n*n)
{
while(y<n&&!array[x][y+1]) array[x][++y] = k++;
while(x<n&&!array[x+1][y]) array[++x][y] = k++;
while(y>1&&!array[x][y-1]) array[x][--y] = k++;
while(x>1&&!array[x-1][y]) array[--x][y] = k++;
}
for( i = 1; i <= n; i++)
{
for( j = 1; j <= n; j++)
printf("%d ",array[i][j]);
printf("\n");
}
return 0;
}
算法参考:https://blog.csdn.net/dghcs18/article/details/107344784