Python递归实现打印杨辉三角

2023-04-16 00:00:00 递归 打印 杨辉三角

"""
递归实现打印杨辉三角
"""

def print_triangle(n):
"""
打印 n 行杨辉三角
"""
if n == 0:
return
# 递归打印前 n-1 行杨辉三角
print_triangle(n-1)
# 打印第 n 行杨辉三角
line = []
for i in range(n):
if i == 0 or i == n-1:
line.append(1)
else:
# 杨辉三角第 n 行第 i 列的值 = 第 n-1 行第 i-1 列的值 + 第 n-1 行第 i 列的值
line.append(pre_line[i-1] + pre_line[i])
print(" ".join(str(x) for x in line))
# 记录当前行,供下一次递归使用
global pre_line
pre_line = line

测试代码

print_triangle(6)
"""
输出:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
"""

相关文章