| Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|
| 158296 | 陈襗葳 | 方阵填数 | C++ | Accepted | 1 MS | 276 KB | 646 | 2026-08-20 18:01:34 |
#include <iostream> #include <cstring> using namespace std; int main() { int n; cin >> n; int a[n][n], x = 0, y = n - 1, m = 1; memset(a, 0, sizeof(a)); // 初始化全为0 a[x][y] = m; while (m < n * n) { while (x + 1 < n && a[x + 1][y] == 0) { x++; m++; a[x][y] = m; } // 向下 while (y - 1 >= 0 && a[x][y - 1] == 0) { y--; m++; a[x][y] = m; } // 向左 while (x - 1 >= 0 && a[x - 1][y] == 0) { x--; m++; a[x][y] = m; } // 向上 while (y + 1 < n && a[x][y + 1] == 0) { y++; m++; a[x][y] = m; } // 向右 } for (int i = 0; i < n; i++) { for (int k = 0; k < n; k++) cout << a[i][k] << " "; cout << endl; } return 0; }