Description
杨辉三角是二项式系数在三角形中的一种几何排列。它的每个数等于它上方两数之和,每行数字左右对称,由 1 开始逐渐变大。
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
请求出杨辉三角的第 n 行,第 m 项的数字是什么。
Input
第一行输入两个整数 n,m代表行数和列数。(1≤n,m≤50)
Output
输出一个整数,代表杨辉三角的第 n 行,第 m项的数字。
我们将杨辉三角左对齐,得到这样一个图案:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
不难看出,第i行第j列的数字等于第i-1行第j-1和第j个数字的和,即yh[i][j] = yh[i – 1][j] + yh[i – 1][j – 1]。代码如下:
#include<iostream>
using namespace std;
const int maxn = 50 + 5;
int yh[maxn][maxn];
int main(){
int n, m;
cin >> n >> m;
yh[1][1] = 1;
for(int i = 2; i <= n; i++){
for(int j = 1; j <= i; j++){
yh[i][j] = yh[i - 1][j] + yh[i - 1][j - 1];
}
}
cout << yh[n][m];
return 0;
}