#include <bits/stdc++.h> #define int long long using namespace std; int lf[45][45]; struct zuobiao{ int x; int y; }; zuobiao fd(int n, int mx){ for (int i = 1; i <= mx; i++){ for (int j = 1; j <= mx; j++){ if (lf[i][j] == n){ zuobiao ans; ans.x=i; ans.y=j; return ans; } } } } signed main(){ int n; cin >> n; for (int i = 1; i <= n * n; i++){ if (i == 1) lf[1][(1+n)/2]=1; else{ zuobiao izb; zuobiao temp=fd(i-1,n); izb.x=(temp.x==1?n:temp.x-1); izb.y=(temp.y==n?1:temp.y+1); if (lf[izb.x][izb.y]!=0){ izb.x=(temp.x==n?1:temp.x+1); izb.y=temp.y; } lf[izb.x][izb.y]=i; } } for (int i = 1; i <= n; i++){ for (int j = 1; j <= n; j++){ cout << lf[i][j] << " "; } cout << "\n"; } return 0; } /************************************************************** Problem: 2344 User: 114514 Language: C++ Result: Accepted Time:110 ms Memory:2088 kb ****************************************************************/