Run ID 作者 问题 语言 测评结果 Time Memory 代码长度 提交时间
74756 方阵填数 C++ Accepted 1 MS 272 KB 678 2024-05-25 23:39:59

Tests(3/3):


Code:

#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; }