使用递归函数输入十行杨辉三角
时间: 2024-10-18 15:22:43 浏览: 30
递归是一种解决问题的方法,通过将问题分解成规模更小的相同问题来解决。要使用递归函数画出十行的杨辉三角,你可以参考以下Python示例:
```python
def pascal_triangle(n):
if n == 0 or n == 1:
return [[1]]
else:
prev_row = pascal_triangle(n - 1)
curr_row = [1] * (n + 1)
for i in range(1, n):
curr_row[i] = prev_row[i - 1][0] + prev_row[i - 1][i]
curr_row.insert(0, 1) # 添加开头的1
return [curr_row] + prev_row
# 打印前10行的杨辉三角
for row_num, row in enumerate(pascal_triangle(10), start=1):
print("第{}行:".format(row_num))
print(' '.join(str(num) for num in row))
print() # 每行之间换行
相关问题
使用递归函数输出十行杨辉三角
杨辉三角是一个经典的数学问题,它是一个由数字构成的三角形,每一行的开头和结尾都是1,中间的每个数是其上一行相邻两个数的和。我们可以使用递归函数来生成这个三角形。下面是一个简单的Python示例:
```python
def pascal_triangle(n):
# 边界条件:当n等于0或1时,返回空列表或只有一个元素[1]
if n == 0:
return [[]]
elif n == 1:
return [[1]]
# 递归情况:构建当前行,并将其添加到前一行的基础上
row = [1] # 当前行的第一个元素始终为1
prev_row = pascal_triangle(n - 1) # 上一行
for i in range(len(prev_row) - 1): # 遍历上一行的元素
row.append(prev_row[i] + prev_row[i + 1]) # 当前行的下一个元素是上两行相应位置相加
row.append(1) # 当前行的最后一个元素始终为1
# 返回当前行并合并所有行
return [row] + prev_row
# 输出前10行杨辉三角
for i in range(10):
print(pascal_triangle(i))
python 使用递归函数输出十行杨辉三角
在Python中,我们可以使用递归函数来生成杨辉三角的前n行。杨辉三角是一个数学术语,每个数字都是其上方两个数字之和。下面是一个简单的递归函数示例,用于打印前10行:
```python
def print_pascal_triangle(n):
# 杨辉三角的第一行和第二行是固定的
if n == 1 or n == 2:
for i in range(1, n+1):
print(' ' * (n - i), end='')
print('*' * i)
return
# 递归地打印前n-1行,并在当前行添加新元素
print_pascal_triangle(n - 1)
for i in range(n):
print(' ' * (n - i - 1), end='')
print('*' * (i + 1), end=' ')
if i != n - 1: # 避免打印最后一个元素后的空格
print(' ' * (i + 1), '*')
# 打印前10行
print_pascal_triangle(10)
```
当你运行这个函数,它会按行打印出杨辉三角的前10行。
阅读全文