杨辉三角的定义啥的我就不多哔哔了,直接上图 ↓
在图中我们可以简单直接地得出一个重要的结论:
每一行中除了最左端和最右端的值为1以外,其它位置的值为它上面两个数字的和。
那么,想象一下,如果把杨辉三角靠左对齐,排成一个下三角矩阵,会是什么样子?
1
1 1
1 2 1
1 3 3 1
······
再使用矩阵的方式给各行各列的元素标上号, 就成了图中所示的样子,根据结论,我们就可以得出一个公式:
如果列数等于1或者列数等于行数, 值为1,
否则它的值为上一行中该列对应的值加上左边那一列对应的值的和.
用伪代码表示就是:
if c==1 or c==r
A(r,c)=1
A(r, c) = A(r-1, c-1) + A(r-1, c)
这里的A为矩阵, r, c分别代表行(row)和列(column).
有了这个公式,我们就可以写出一个求杨辉三角矩阵某一处的值的函数:
int YangHui_result(int row,