#Z5008. 实现杨辉三角

实现杨辉三角

#include <iostream>
using namespace std;
typedef long long ll;
const int N = 55;
ll f[N][N];
int main () {
  
	return 0;
}

这一讲我们学习如何实现杨辉三角。

杨辉三角,是二项式系数在三角形中的一种几何排列,在中国南宋数学家杨辉 1261 年所著的《详解九章算法》一书中出现。在欧洲,帕斯卡( 1623----1662 )在 1654 年发现这一规律,所以这个表又叫做帕斯卡三角形。帕斯卡的发现比杨辉要迟 393 年,比贾宪迟 600 年。

杨辉三角在组合数学中十分实用,是必备技能。

请在主函数中写下接收数据和输出代码:

init();
int n, m;
cin >> n >> m;
cout << f[n][m] << endl;

接下来我们实现init(),我们先构造init()函数。

void init() {

}

 

这一步我们先两个for循环,分别表示行和列。

请在init()函数中写下:

for (int i = 1; i < N; ++i) {
    for(int j = 1; j <= i; ++j) {
      
    }
}

因为这里我们并没有初始化数据,所以我们这里需要再for循环的时候,把数据进行初始化。

我们发现我们只需要初始化第一列数据为 1 就可以了。

请在for(int j = 1; j <= i; ++j) {代码下面写下:

if (j == 1) {
    f[i][j] = 1;
}

接下来我们只需要把我们发现的规律写上就可以了。

f[i][j]=f[i−1][j−1]+f[i−1][j]

请接着上面的代码写下:

else {
    f[i][j] = f[i - 1][j - 1] + f[i - 1][j];
}

现在你可运行你的程序,可以查看第三行第三列,杨辉三角的值了。

相信聪明的你,现在一定已经学会了如何实现 杨辉三角 了。