1 条题解

  • 1
    @ 2026-8-24 9:07:48
    #include <iostream>
    #include <iomanip>
    using namespace std;
    int main() {
        int n;
        cin >> n;
        int arr[10][10] = {0};
        int x = 0, y = 0;
        int num = 1;
        int dir[4][2] = {{0,1}, {1,0}, {0,-1}, {-1,0}};
        int d = 0;
        while (num <= n * n) {
            arr[x][y] = num++;
            int nx = x + dir[d][0];
            int ny = y + dir[d][1];
            if (nx < 0 || nx >= n || ny <0 || ny >=n || arr[nx][ny] != 0) {
                d = (d + 1) % 4;
                nx = x + dir[d][0];
                ny = y + dir[d][1];
            }
            x = nx;
            y = ny;
        }
    
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                cout << setw(3) << arr[i][j];
            }
            cout << endl;
        }
        return 0;
    }
    
    • 1

    信息

    ID
    143
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    (无)
    递交数
    182
    已通过
    49
    上传者