如何用Python实现杨辉三角的生成和打印?
时间: 2024-10-19 20:10:49 浏览: 51
在Python中,可以使用递归或者动态规划的方式来生成并打印杨辉三角。以下是两种常见的实现方法:
**方法一:递归**
递归是一种直观的方式,通过计算前两个数字之和来构建每一行。这里是一个简单的递归函数示例:
```python
def pascal_triangle(n):
triangle = [[1], []]
for i in range(1, n):
last_row = triangle[-1]
new_row = [1] + [sum(pair) for pair in zip(last_row, last_row[1:])] + [1]
triangle.append(new_row)
return triangle
# 打印
for row in pascal_triangle(5):
print(' '.join(str(num) for num in row))
```
**方法二:动态规划**
如果需要优化性能,可以使用动态规划存储已计算的结果,避免重复计算。下面是一个使用列表列表的动态规划版本:
```python
def generate_pascal_triangle(n):
triangle = [[0]*i for i in range(n+1)]
triangle[0][0] = 1
for i in range(1, n+1):
triangle[i][0] = 1
triangle[i][i-1] = 1
for j in range(1, i):
triangle[i][j] = triangle[i-1][j-1] + triangle[i-1][j]
return triangle
# 打印
for row in generate_pascal_triangle(5):
print(' '.join(str(num) for num in row))
```
阅读全文