我们根据4*4矩阵找一下规律:
10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4
观察可知 以右上角的一开始,可将
#include<cstdio>
using namespace std;
int main(){
int n,p,q,x=1;
scanf("%d",&n);
p=1;
q=n;
int a[n+2][n+2];
for(int m=n-1;m>0;m-=2){
for(int k=1;k<=4;k++){
if(k==1){
for(int i1=1;i1<=m;i1++){
a[p][q]=x;
p++;
x++;
}
}
if(k==3){
for(int i1=1;i1<=m;i1++){
a[p][q]=x;
p--;
x++;
}
}
if(k==2){
for(int i1=1;i1<=m;i1++){
a[p][q]=x;
q--;
x++;
}
}
if(k==4){
for(int i1=1;i1<=m;i1++){
a[p][q]=x;
q++;
x++;
}
q--;
p++;
}
}
}
if(n%2==1){
a[(n/2)+1][(n/2)+1]=x;
}
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
printf("%3d",a[i][j]);
}
printf("\n");
}
}