1 条题解

  • 0
    @ 2025-12-5 12:25:26

    C++ :

    #include <iostream>
    using namespace std;
    
    int main() {
        int arr[40][40]={0}, n, k = 2;
        cin >> n;
        int x = 0, y = n / 2;
        arr[x][y] = 1;
        while(k <= n * n){
            if(x == 0 && y != n - 1){
                x = n - 1;
                y = y + 1;
    
            }else if(x != 0 && y == n - 1){
                x = x - 1;
                y = 0;
            }else if(x == 0 && y == n - 1){
                x = x + 1;
            }else{
                //右上方
                if(arr[x - 1][y + 1] == 0){
                    x = x - 1;
                    y = y + 1;
                }else{
                    x = x + 1;
                }
            }
            arr[x][y] = k++;
        }
    
    
        for(int i = 0; i < n; ++i){
            for(int j = 0; j < n; ++j){
                printf("%d ", arr[i][j]);
            }
            printf("\n");
        }
    
        return 0;
    }
    
    
    • 1

    信息

    ID
    70
    时间
    1000ms
    内存
    128MiB
    难度
    (无)
    标签
    递交数
    0
    已通过
    0
    上传者