编写一个函数,一个函数收收一个整数num为参数,生成杨辉三角形的前num行数据,另一个函数接收生成的杨辉三角形并按如图所示的形式输出。
时间: 2024-05-04 09:16:04 浏览: 65
非常感谢您的提问!关于您的问题,我给您提供以下代码:
生成杨辉三角的函数:
```python
def generate_pascal_triangle(num):
triangle = [[1], [1, 1]]
if num == 1:
return [[1]]
elif num == 2:
return triangle
else:
for _ in range(2, num):
current_row = [1]
for j in range(1, len(triangle[-1])):
current_row.append(triangle[-1][j-1] + triangle[-1][j])
current_row.append(1)
triangle.append(current_row)
return triangle
```
输出杨辉三角的函数:
```python
def print_pascal_triangle(triangle):
max_num_width = len(str(triangle[-1][-1]))
for row in triangle:
row_string = ''
for num in row:
num_string = str(num).center(max_num_width)
row_string += num_string + ' '
print(row_string.center(len(row_string) + 6 - max_num_width))
```
您可以将这两个函数分别保存在两个.py文件中,或者将它们复制到同一个.py文件中进行测试。
例如,如果您想要生成杨辉三角形的前10行,并按照如下形式输出:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
...
则可以调用:
```python
triangle = generate_pascal_triangle(10)
print_pascal_triangle(triangle)
```
输出如下:
1
1 1
1 2 1
1 3 3 1
1 4 6 4 1
1 5 10 10 5 1
1 6 15 20 15 6 1
1 7 21 35 35 21 7 1
1 8 28 56 70 56 28 8 1
1 9 36 84 126 126 84 36 9 1
```
希望我的回答对您有所帮助,如果您还有其他问题,请不要犹豫,随时问我!
阅读全文