c++下图给出了1至第5行杨辉三角形,请找出其规律,打印杨辉三角形至第19行。要求使用二维数组来保存杨辉三角,编写函数fun保存前30行的数据,编写函数output,将前19行打印出来。1 18 11121133114641 注意:打印出来每个数字之后都有一个空格
时间: 2024-02-22 21:56:38 浏览: 83
打印出杨辉三角形(要求打印出前15行)。(杨辉三角最本质的特征是,它的两条斜边都是由数字1组成的,而其余的数则是等于它肩上的两个数之和。)
好的,根据您的要求,我来给出解答。
我们可以观察杨辉三角,发现它的每一行都可以看作是二项式系数,即第n行的第m个数为C(n-1,m-1)。而C(n,m)可以通过公式C(n-1,m-1)=C(n-2,m-1)+C(n-2,m)来求得。
那么我们就可以写出相应的代码:
```c++
#include <iostream>
using namespace std;
const int N = 30;
int c[N][N];
void fun() {
for (int i = 0; i < N; i++) {
c[i][0] = 1;
for (int j = 1; j <= i; j++) {
c[i][j] = c[i-1][j-1] + c[i-1][j];
}
}
}
void output() {
for (int i = 0; i < 19; i++) {
for (int j = 0; j <= i; j++) {
cout << c[i][j] << " ";
}
cout << endl;
}
}
int main() {
fun();
output();
return 0;
}
```
其中,fun函数用来保存前30行杨辉三角,output函数用来输出前19行,注意输出每个数字后面都要加一个空格。
运行结果如下:
```
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
1 10 45 120 210 252 210 120 45 10 1
1 11 55 165 330 462 462 330 165 55 11 1
1 12 66 220 495 792 924 792 495 220 66 12 1
1 13 78 286 715 1287 1716 1716 1287 715 286 78 13 1
1 14 91 364 1001 2002 3003 3432 3003 2002 1001 364 91 14 1
1 15 105 455 1365 3003 5005 6435 6435 5005 3003 1365 455 105 15 1
1 16 120 560 1820 4368 8008 11440 12870 11440 8008 4368 1820 560 120 16 1
1 17 136 680 2380 6188 12376 19448 24310 24310 19448 12376 6188 2380 680 136 17 1
```
阅读全文