#include <bits/stdc++.h> using namespace std; int main() { int n; cin>>n; int a[100][100]={0},d=0,i=1,j=1,s=1; int di[]={0,1,0,-1}; int dj[]={1,0,-1,0}; while(s<=n*n){ a[i][j]=s++; int ni=i+di[d]; int nj=j+dj[d]; if(ni<1||ni>n||nj<1||nj>n||a[ni][nj]!=0){ d=(d+1)%4; ni=i+di[d]; nj=j+dj[d]; } i=ni; j=nj; } for(i=1;i<=n;i++){ for(j=1;j<=n;j++){ cout<<setw(3)<<a[i][j]; } cout<<endl; } return 0; } /************************************************************** Problem: 1208 User: hongjiaming Language: C++ Result: Accepted Time:10 ms Memory:2072 kb ****************************************************************/