用非递归和递归计算Lucas数列第n项
时间: 2024-05-14 10:14:45 浏览: 211
编写函数f,功能是用递归的方法求斐波那契数列的第n项
非递归解法:
```python
def lucas(n):
if n == 0:
return 2
elif n == 1:
return 1
else:
a = 2
b = 1
for i in range(2, n+1):
c = a + b
a = b
b = c
return b
```
递归解法:
```python
def lucas(n):
if n == 0:
return 2
elif n == 1:
return 1
else:
return lucas(n-1) + lucas(n-2)
```
但是递归解法效率较低,因为每次调用函数都需要创建新的函数栈,可以使用递归+记忆化的方式来优化。
阅读全文