top1编程
← 返回题目
题解

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

1 条题解

  • 0
    @ 2026-7-31 9:33:34

    解题思路

    输出右上三角方阵。对角线上的数 = 行号+1,其余位置 = 左边的值 + 下面的值。

    参考代码

    #include <iostream>
    #include <iomanip>
    using namespace std;
    int main() {
        int n; cin >> n;
        int a[12][12] = {0};
        // 对角线的值 = 行号 + 1
        for (int i = 0; i < n; i++) a[i][i] = i + 1;
        // 每个位置 = 左边的值 + 下面的值
        for (int j = 1; j < n; j++) {
            for (int i = j - 1; i >= 0; i--) {
                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 (j >= i) cout << setw(5) << a[i][j];
                else cout << setw(5) << ' ';
            }
            cout << endl;
        }
        return 0;
    }
    

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

    • 1