Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
93343 | 陈铎文 | 方阵填数 | C++ | Accepted | 1 MS | 272 KB | 656 | 2024-10-13 12:27:25 |
#include<bits/stdc++.h> using namespace std; int main(){ int n,a[21][21]={},dir=0,x,y; cin>>n; x=1,y=n; for(int i=1;i<=n*n;i++){ a[x][y]=i; switch(dir){ case 0: x++; if(x==n or a[x+1][y]!=0){ dir=(dir+1)%4; }break; case 1: y--; if(y==1 or a[x][y-1]!=0){ dir=(dir+1)%4; }break; case 2: x--; if(x==1 or a[x-1][y]!=0){ dir=(dir+1)%4; }break; case 3: y++; if(y==n or a[x][y+1]!=0){ dir=(dir+1)%4; }break; } } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++){ cout<<a[i][j]<<" "; } cout<<endl; } }