1 条题解

  • 0
    @ 2091-8-30 21:16:22

    【深基5.习7】杨辉三角

    解题思路

    建立三角数组,每行首尾为 1,内部数字等于上一行左上方和正上方数字之和。

    正确性说明

    杨辉三角边界均为 1,内部满足相邻两数求和关系;逐行计算时上一行已完整得到,因此归纳得到全部所需行。

    易错点

    首行只有一个 1;每行数字用空格分隔。

    复杂度

    时间 O(n²),空间 O(n²)。

    参考代码(C++11)

    #include <bits/stdc++.h>
    using namespace std;
    
    int main() {
        ios::sync_with_stdio(false);
        cin.tie(nullptr);
        int n;
        cin >> n;
        long long a[21][21] = {};
        for (int i = 0; i < n; i++) {
            a[i][0] = a[i][i] = 1;
            for (int j = 1; j < i; j++)
                a[i][j] = a[i - 1][j - 1] + a[i - 1][j];
            for (int j = 0; j <= i; j++) {
                if (j)
                    cout << " ";
                cout << a[i][j];
            }
            cout << "\n";
        }
        return 0;
    }
    
    • 1

    信息

    ID
    95
    时间
    1000ms
    内存
    125MiB
    难度
    进阶
    标签
    递交数
    1
    已通过
    1
    上传者