#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: panyuchen Language: C++ Result: Accepted Time:9 ms Memory:2072 kb ****************************************************************/