#include <iostream.h>
#include<iomanip.h>
int temp,m[30][30]={0,};
void Helix(int min,int max)
{
for(int i=min;i<max;i++)
{
m[min][i]=temp+i-min;
m[i][max]=temp+(max-min)+i-min;
m[max][i+1]=temp+3*(max-min)-(i-min+1);
m[i+1][min]=temp+4*(max-min)-(i-min+1);
}
temp+=4*(max-min);
}
void main()
{
while(1)
{
int N,min(0),max;
cout<<" 输入螺旋矩阵的行列数N(1~20),输入字母 退出:";
cin>>N;
if(N<1 || N>30)
break;
max=N-1;
temp=1;
if(N%2==1)
m[N/2][N/2]=N*N;
for(int i=0;i<N/2;i++)
Helix(min++,max--);
for(i=0;i<N;i++)
{
for(int j=0;j<N;j++)
cout<<setw(3)<<m[i][j]<<' ';
cout<<endl;
}
}
}