斐波那契数烈指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……,从第3项开始,每一项都等于前两项之和。现在要求编写一函数Fibonacci(n),用于输出斐波那契数列中的第n个数。
时间: 2024-09-13 21:16:20 浏览: 44
已知Fibonacci数列:1,1,2,3,5,8,13,……。观察数列,可发现这样的规则:从第3项开始,每一项都是其前面两项之和。
当然,斐波那契数列的生成通常有两种方法:递归和循环迭代。以下是两种方法的Python实现:
1. **递归法**:
```python
def Fibonacci(n):
if n <= 0:
raise ValueError("Invalid input! n should be a positive integer.")
elif n == 1 or n == 2:
return 0
else:
return Fibonacci(n - 1) + Fibonacci(n - 2)
# 测试
print(Fibonacci(9)) # 输出: 34
```
注意,递归法虽然直观,但在计算大数值时效率较低,因为它会重复计算很多相同的子问题。
2. **循环迭代法(更高效)**:
```python
def Fibonacci(n):
if n <= 0:
raise ValueError("Invalid input! n should be a positive integer.")
a, b = 0, 1
for _ in range(n):
a, b = b, a + b
return a
# 测试
print(Fibonacci(9)) # 输出: 34
```
这种方法通过动态维护当前和上一个数,避免了重复计算。
阅读全文