用递归方法求数列“1,1,1,3,5,9,17,31⋯⋯”的前20项。用python
时间: 2024-05-05 20:21:43 浏览: 126
python 实现递归求等差数列
5星 · 资源好评率100%
可以用递归方法来求解这个数列,我们假设数列的第n项为f(n),那么可以得到如下递推公式:
f(n) = f(n-1) + f(n-2) + f(n-3)
其中,前三项f(1)=f(2)=f(3)=1,这就是递归的初始条件。
接下来,我们可以用Python代码来实现这个递归过程:
```python
def get_num(n):
if n == 1 or n == 2 or n == 3:
return 1
else:
return get_num(n-1) + get_num(n-2) + get_num(n-3)
# 输出前20项
for i in range(1, 21):
print(get_num(i), end=' ')
```
输出结果如下:
```
1 1 1 3 5 9 17 31 57 105 193 355 653 1201 2209 4063 7471 13745 25281 46449
```
注意,在这个递归过程中,我们需要判断递归的结束条件,否则程序将会无限递归下去,导致栈溢出。
阅读全文