top1编程
← 返回题目
题解

【入门】有趣的数字图形IV

1 条题解

  • 0
    @ 2026-7-31 9:38:49

    解题思路

    输出右下三角方阵。

    右上到左下对角线的值为 n-行号,其余位置的值 = 左边的值 + 上面的值。

    参考代码

    #include <iostream>
    #include <iomanip>
    using namespace std;
    int main() {
        int n; cin >> n;
        int a[12][12] = {0};
        // 右上到左下对角线赋值
        for (int i = 0; i < n; i++) a[i][n - 1 - i] = n - i;
        // 每个位置 = 左边的值 + 上面的值
        for (int j = 1; j < n; j++) {
            for (int i = 1; i < n; i++) {
                if (i + j > n - 1 && a[i][j] == 0) {
                    a[i][j] = a[i][j - 1] + a[i - 1][j];
                }
            }
        }
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < n; j++) {
                if (i + j >= n - 1) cout << setw(5) << a[i][j];
                else cout << "     ";
            }
            if (i < n - 1) cout << " \n";
        }
        return 0;
    }
    

    O(N²) 时间,O(N²) 空间

    • 1