杨辉三角形,又称贾宪三角形、帕斯卡三角形,是二项式系数在三角形中的一种几何排列。
下图显示了杨辉三角的前 7 行:
递归打印杨辉三角
杨辉三角形中的数,正是(x+y)的 N 次方幂展开式各项的系数,下面以递归的方法来打印杨辉三角形。
从杨辉三角形的特点出发,可以总结出:
- 第 x 行有 x 个值(设起始行为第1行)。
- 对于第 x 行的第 y(y>=3)个值,有:当 y=1 或 y=x 时,其值为 1;当 y!=1 且 y!=x 时,其值为第 x-1 行的第 y-1 个值与第 x-1 行的第 y 个值之和。
将这些特点提炼成数学公式,则位于杨辉三角第 x 行第 y 列的值为:
根据上面的分析,完整的程序如下:
def triangles(x, y):
if y == 1 or y == x: # y=1或y=x时,函数返回值为1
return 1
else:
z