输入一正整数n,打印n行的杨辉三角形,要求c(i,j)=c(i-1,j)+c(i-1,j-1)使用递归求解
时间: 2023-12-14 09:04:36 浏览: 62
好的,以下是使用递归求解的杨辉三角形代码:
```python
def print_yanghui_triangle(n):
if n == 1:
print("1")
return
elif n == 2:
print("1")
print("1 1")
return
else:
print_yanghui_triangle(n - 1)
line = [1]
for i in range(1, n - 1):
line.append(print_yanghui_triangle_helper(n - 1, i))
line.append(1)
print(" ".join(str(x) for x in line))
return
def print_yanghui_triangle_helper(i, j):
if j == 0 or i == j:
return 1
else:
return print_yanghui_triangle_helper(i - 1, j - 1) + print_yanghui_triangle_helper(i - 1, j)
```
这个函数接受一个参数n,表示要打印杨辉三角形的行数。如果n等于1,则只打印一个1;如果n等于2,则打印两行,第一行是1,第二行是1 1;否则,递归地打印前n-1行,然后计算出第n行的数字,最后将这一行打印出来。
辅助函数print_yanghui_triangle_helper用于计算杨辉三角形中(i,j)位置的数字。根据定义,如果j等于0或i等于j,则c(i,j)=1;否则,应用公式c(i,j)=c(i-1,j)+c(i-1,j-1)递归计算。