Run ID:157570

提交时间:2026-07-30 18:41:53

#include <iostream> using namespace std; const int MAXN=105; int a[MAXN][MAXN]={0}; int main() { int n; cin>>n; int num=1; int x=0,y=n-1; a[x][y]=num; int dx[]={1,0,-1,0}; int dy[]={0,-1,0,1}; int dir=0; while(num<n*n) { int nx=x+dx[dir]; int ny=y+dy[dir]; if (nx>=0 && nx<n &&ny>=0 && ny<n && a[nx][ny]==0) { x=nx; y=ny; num++; a[x][y]=num; } else { dir=(dir+1)%4; } } for(int i=0;i<n;i++) { for(int j=0;j<n;j++) { cout<< a[i][j]<<" "; } cout<<end; } return 0;