提交时间:2026-06-19 16:41:35

运行 ID: 91943

#include <iostream> #include <iomanip> using namespace std; const int MAX = 105; int a[MAX][MAX]; int main() { int n; cin >> n; int x = 0, y = n - 1; int num = 1; a[x][y] = num++; while (num <= n * n) { // 向下 while (x + 1 < n && !a[x + 1][y]) a[++x][y] = num++; // 向左 while (y - 1 >= 0 && !a[x][y - 1]) a[x][--y] = num++; // 向上 while (x - 1 >= 0 && !a[x - 1][y]) a[--x][y] = num++; // 向右 while (y + 1 < n && !a[x][y + 1]) a[x][++y] = num++; } for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { cout << setw(2) << a[i][j] ; } cout << endl; } return 0; }