Python 实现杨辉三角 - 代码示例和解释
杨辉三角是一个由数字组成的三角形,其中每个数字是它上方两个数字之和。给定一个整数 n,编写一个函数来生成杨辉三角的前 n 行。
例如,当 n = 5 时,生成的杨辉三角应如下所示:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
你可以假设 n 是非负整数。
Python 代码:
def generate_pascal_triangle(n):
'''
生成杨辉三角的前 n 行
Args:
n (int): 杨辉三角的行数
Returns:
list: 包含杨辉三角前 n 行的列表
'''
if n <= 0:
return []
triangle = [[1]]
for i in range(1, n):
row = [1]
for j in range(1, i):
row.append(triangle[i-1][j-1] + triangle[i-1][j])
row.append(1)
triangle.append(row)
return triangle
# 测试代码
num_rows = 5
pascal_triangle = generate_pascal_triangle(num_rows)
for row in pascal_triangle:
print(' ' * (num_rows - len(row)), end='')
print(' '.join(str(x) for x in row))
代码解释:
- 初始化三角形: 首先创建一个列表
triangle,并将第一行[1]添加到其中。 - 迭代生成行: 从第二行开始,使用循环迭代生成每行。
- 计算当前行的数字: 对于当前行的每个数字,它等于上一行的对应位置和前一个位置的数字之和。
- 添加边角数字: 每个行的开头和结尾都添加
1。 - 返回结果: 最后,返回包含所有行的
triangle列表。
使用示例:
# 调用函数生成杨辉三角
pascal_triangle = generate_pascal_triangle(5)
# 打印结果
for row in pascal_triangle:
print(' ' * (5 - len(row)), end='')
print(' '.join(str(x) for x in row))
输出:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
希望这个例子能帮助你理解如何使用 Python 生成杨辉三角。
原文地址: https://www.cveoy.top/t/topic/pNk9 著作权归作者所有。请勿转载和采集!