Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|
74756 | 文 | 方阵填数 | C++ | Accepted | 1 MS | 272 KB | 678 | 2024-05-25 23:39:59 |
#include <iostream> #include <cstring> //memset函数 using namespace std; int main() { int n; cin>>n; int a[n][n]; memset(a, 0, sizeof(a)); int x=0, y=n-1,num=1; a[x][y]=1; while(num < n*n) { // 从上到下 while(x+1<n && a[x+1][y]==0){ x++; num++; a[x][y]=num; } //从右到左 while(y-1>=0 && a[x][y-1]==0) { y--; num++; a[x][y]=num; } // 向上 while(x-1>=0 && a[x-1][y]==0) { x--; num++; a[x][y]=num; } //向右 while(y+1<n && a[x][y+1]==0) { y++; num++; a[x][y]=num; } } for(int i=0;i<n;i++) { for(int j=0; j<n; j++) cout<<a[i][j]<<" "; cout<<endl; } return 0; }