在屏幕上显示如下杨辉三角形: 1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 ... ... ... ... ... ... ...
时间: 2024-01-03 21:03:52 浏览: 62
整齐美观的杨辉三角形
好的,以下是一个 Python 实现,可以输出指定行数的杨辉三角形:
```python
def generate_pascal_triangle(n):
"""
生成 n 行的杨辉三角形,返回一个包含 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
def print_pascal_triangle(n):
"""
输出 n 行的杨辉三角形。
"""
triangle = generate_pascal_triangle(n)
width = len(str(triangle[-1][-1]))
for row in triangle:
# 每个元素之间用空格隔开,左对齐,宽度为 width
print(" ".join(str(num).ljust(width) for num in row))
```
函数 generate_pascal_triangle(n) 用于生成 n 行的杨辉三角形,返回一个包含 n 个子列表的列表。这个函数的实现基于杨辉三角形的递推公式:
C(n, k) = C(n-1, k-1) + C(n-1, k)
其中 C(n, k) 表示第 n 行第 k 个元素的值,n 和 k 都是从 0 开始计数的。在这个函数中,我们依次计算每一行的值,并将其添加到 triangle 列表中。
函数 print_pascal_triangle(n) 用于输出 n 行的杨辉三角形。首先调用 generate_pascal_triangle(n) 生成三角形,然后遍历每一行并输出。对于每一行,我们将其中的每个元素转换为字符串,并将它们用空格隔开,并且左对齐,使得它们的宽度相等。
阅读全文