杨辉三角
杨辉三角形是中国古代数学的杰出研究成果之一,是我国北宋数学家贾宪于 1050 年首先发现并使用的。而后南宋数学家杨辉在《详解九章算法》一书中记载并保存了“贾宪三角形“。因此,贾宪三角形又被称为杨辉三角形。
从上面的动图我们可以得出一个道公式:
杨辉三角形第i行j列的值 = 第 (i-1) 行 (j-1) 列的值 + 第 (i-1) 行 (j) 列的值
实现杨辉三角按照以下格式输出
# 初始化杨辉三角形
# 用列表推导式创建一个10*10的二维列表,并将所有的元素初始化为0
triangle = [[0]*10 for i in range(10)]
# 计算杨辉三角形
# 杨辉三角形左右两边的元素均为1
for i in range(10):
triangle[i][0] = 1
triangle[i][i] = 1
# 第i行j列的值 = 第(i-1)行(j-1)列的值 + 第(i-1)行(j)列的值
for i in range(2, 10):
for j in range(1, i):
triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j]
# 输出杨辉三角形
for i in range(10):
# 因为是三角形,所以i越小,前边需要填充的TAB越多
for k in range((10-i)//2):
print('\t', end='')
for j in range(i+1):
# 要形成“隔行错开”的效果,所以我们在偶数行加4个空格
if i % 2 == 1:
print(" ", end='')
# 为何要使用TAB而非空格,大家可以将下面的end='\t'改成对应的空格数即可知晓
print(triangle[i][j], end='\t')
print()
声明:本题思路源自 小甲鱼论坛,本博文记录只是个人学习笔记