利用字典改进斐波那契数列递归程序计算n=28的斐波那契数列值
时间: 2024-10-31 13:07:47 浏览: 114
递归方法实现斐波那契数列_递归方法实现斐波那契数列_python_源码
利用字典可以优化斐波那契数列的递归计算,避免重复计算同一个子问题,因为递归过程中会多次请求之前已经计算过的数值。这里我们先创建一个字典来存储已计算过的斐波那契数,然后更新这个字典随着递归过程,最终找到n=28的斐波那契值。
```python
def fibonacci(n, memo={}):
# 如果n小于等于0,返回错误信息
if n < 0:
return "输入的数值必须是非负整数"
# 基本情况:当n为0或1时,直接返回n
if n == 0 or n == 1:
return n
# 检查是否已经计算过当前的n值
if n not in memo:
# 计算并储存结果
memo[n] = fibonacci(n - 1) + fibonacci(n - 2)
# 返回计算好的结果
return memo[n]
# 计算第28项斐波那契数
fib_28 = fibonacci(28)
print(f"斐波那契数列中第28项的值为: {fib_28}")
```
阅读全文