Run ID:61899

提交时间:2023-12-11 16:20:01

#include <stdio.h> #include <iostream> using namespace std; int main(){ int n,arr[20][20]; scanf("%d",&n); for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ arr[i][j]=0; } } int k=1,x=0,y=n-1,xi=n-1,yi=0,f=3; while(k!=n*n+1){ arr[x][y]=k; switch(f){ case 0://左到右 if(y==xi){ f=3; x++; }else{ y++; } break; case 1://下到上 if(x==yi){ f=0; y++; xi--; yi++; }else{ x--; } break; case 2://右到左 if(y==yi){ f=1; x--; }else{ y--; } break; case 3://上到下 if(x==xi){ f=2; y--; }else{ x++; } break; } k++; } for(int i=0;i<n;i++){ for(int j=0;j<n;j++){ printf("%d",arr[i][j]); if(j!=n-1){ printf(" "); } } printf("\n"); } //system("pause"); return 0; }