写一个求解杨辉三角形的Python程序,使用过程调用的递归方法实现,输出杨辉三角形的前8行
时间: 2024-03-26 18:42:11 浏览: 57
好的,下面是使用递归方法实现杨辉三角的Python代码:
```python
def yanghui_triangle(n):
if n == 1:
return [[1]]
else:
res = yanghui_triangle(n - 1)
row = [1] * n
for i in range(1, n - 1):
row[i] = res[-1][i - 1] + res[-1][i]
res.append(row)
return res
# 输出前8行杨辉三角
n = 8
res = yanghui_triangle(n)
for i in range(n):
print(' ' * (n - i - 1), end='')
print(res[i])
```
输出结果如下:
```
[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]
```
其中,`n` 表示杨辉三角的行数,`res` 储存了杨辉三角的每一行的值。递归方法中,如果 `n` 为1,则返回一个只包含1的列表;否则,先递归求解前 `n-1` 行,并将结果存储在 `res` 中,然后根据前一行的值计算当前行的值,并将其添加到 `res` 列表中。最后返回 `res`。
阅读全文