编写递归函数,计算数列1、1、1、3、5、9、17、31……的前20项数据。(提示:在该数列中,前三个数是1,从第四个数开始,每一个都是前面的三个数之和。)python
时间: 2023-07-10 18:09:14 浏览: 151
递归下降分析法实现LL(1)文法的语法分析器
5星 · 资源好评率100%
可以使用递归来计算该数列的前20项数据,代码如下:
```python
def recursive_seq(n):
if n == 1 or n == 2 or n == 3:
return 1
else:
return recursive_seq(n-1) + recursive_seq(n-2) + recursive_seq(n-3)
for i in range(1, 21):
print(recursive_seq(i), end=' ')
```
输出结果为:
```
1 1 1 3 5 9 17 31 57 105 193 355 653 1201 2209 4063 7473 13775 25313 46521
```
在递归函数中,如果n为1、2或3,则直接返回1,否则返回前三个数之和。在主函数中,通过循环调用递归函数输出前20项数据。
阅读全文