计算斐波那契数列第n项
时间: 2024-09-27 19:05:55 浏览: 31
斐波那契数列是一个经典的数学序列,其特点是每一项都等于前两项之和。例如,第一项通常设为0,第二项为1,后续每一项都是前面两项相加。数列的前几项为:0, 1, 1, 2, 3, 5, 8, 13...如果你想知道第n项的值,可以使用递归、动态规划或者公式直接计算。
1. **递归**:
```python
def fibonacci_recursive(n):
if n <= 0:
return 0
elif n == 1:
return 1
else:
return fibonacci_recursive(n - 1) + fibonacci_recursive(n - 2)
```
2. **动态规划** (更高效):
```python
def fibonacci_dp(n):
fib = [0, 1] + [0] * (n - 1)
for i in range(2, n+1):
fib[i] = fib[i-1] + fib[i-2]
return fib[n]
```
3. **公式** (直接计算,仅适用于较大的n且避免大量重复计算):
对于足够大的n,可以用黄金比例的幂次来计算:
```python
def fibonacci_formula(n):
phi = (1 + 5**0.5) / 2
return round((phi**n - (-phi)**(-n)) / sqrt(5))
```
阅读全文