1 条题解
-
0
【深基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