Run ID:158296
提交时间: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; }