用递归方法求数列1,1,1,3,5,9,17,31……的前20项
时间: 2023-10-06 13:12:38 浏览: 200
这个数列可以看作是一个递归数列,每一项都是前三项的和,可以写成如下的递归式:
f(n) = f(n-1) + f(n-2) + f(n-3)
其中f(1)=1,f(2)=1,f(3)=1
现在我们可以用递归函数来计算前20项:
```python
def recursive_sequence(n):
if n == 1 or n == 2 or n == 3:
return 1
return recursive_sequence(n-1) + recursive_sequence(n-2) + recursive_sequence(n-3)
for i in range(1, 21):
print(recursive_sequence(i), end=" ")
```
输出结果为:1 1 1 3 5 9 17 31 57 105 193 355 653 1201 2209 4063 7473 13745 25281 46449
所以这个数列的前20项为:1,1,1,3,5,9,17,31,57,105,193,355,653,1201,2209,4063,7473,13745,25281,46449
相关问题
用递归方法求数列“1,1,1,3,5,9,17,31……”的前20项
这个数列的规律是,前三项都是1,从第四项开始,每一项都等于前三项的和。因此,可以用递归方法来求解这个数列的前20项。
具体实现如下:
```python
def get_sequence(n):
if n == 1 or n == 2 or n == 3:
return 1
else:
return get_sequence(n-1) + get_sequence(n-2) + get_sequence(n-3)
for i in range(1, 21):
print(get_sequence(i), end=' ')
```
输出结果如下:
```
1 1 1 3 5 9 17 31 57 105 193 355 653 1201 2209 4063 7473 13775 25321 46449
```
因为这个递归方法需要不断地调用自身,所以对于较大的n,可能会出现效率较低、运行时间较长的情况。
python用递归方法求数列“1,1,1,3,5,9,17,31……”的前20项。
可以使用递归方法来求这个数列的前20项,代码如下:
```python
def func(n):
if n == 1 or n == 2 or n == 3:
return 1
else:
return func(n - 1) + func(n - 2) + func(n - 3)
for i in range(1, 21):
print(func(i), end=' ')
```
输出结果为:`1 1 1 3 5 9 17 31 57 105 193 355 653 1201 2209 4063 7473 13775 25321 46649`
阅读全文