时间限制: 1000 ms 内存限制: 65536 KB
提交数: 6968 通过数: 4548
例5.11 打印杨辉三角形的前n(2≤n≤20)行。杨辉三角形如下图:
当=5时
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1
输出:
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1
输入行数n。
输出如题述三角形。n行,每行各数之间用一个空格隔开。
分析:每个数诗他上面两个数之和,如果将数组从左到右相加,会更改前面一个数的值,那么就从后面开始相加。
#include<iostream> using std::cin; using std::cout; using std::endl; int main() { int n = 0; cin >> n; int a[20] = { 0 }; for (int i = 0; i < n; ++i) { for (int j = i; j >= 0; --j) { if (j == 0) { a[j] = 1; } else { a[j] = a[j] + a[j - 1]; } } for (int k = 0; k <= i; ++k) { cout << a[k] << " "; } cout << endl; } }