#include<iostream> using namespace std; int main(){ int n,m=1; cin>>n; int a[n+1][n+1]; // 一共要画多少个圈 int k=n/2+(n%2==0?0:1); // 每圈开始的坐标是(i,i),结束的坐标是(n+1-i,n+1-i) for(int i=1;i<=k;i++){ // 打印上部 for(int j=i;j<=n+1-i;j++){ a[i][j]=m++; } // 打印右部 for(int j=i+1;j<=n+1-i;j++){ a[j][n+1-i]=m++; } // 打印下部 for(int j=n+1-i-1;j>=i;j--){ a[n+1-i][j]=m++; } // 打印左部 for(int j=n+1-i-1;j>i;j--){ a[j][i]=m++; } } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cout<<a[i][j]<<"\t"; } cout<<endl; } return 0; }