You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python斐波那契函数返回错误值问题求助

问题根源:斐波那契数列的索引定义不匹配

当前你的函数返回fibonacci(5)=5,和你预期的3不符,核心原因是你和函数对“第n个斐波那契数”的起始定义不一样。

你的函数采用的定义

函数里的数列是从n=0开始计数的:

  • fibonacci(0) = 0
  • fibonacci(1) = 1
  • fibonacci(2) = fibonacci(1)+fibonacci(0) = 1
  • fibonacci(3) = fibonacci(2)+fibonacci(1) = 2
  • fibonacci(4) = fibonacci(3)+fibonacci(2) = 3
  • fibonacci(5) = fibonacci(4)+fibonacci(3) = 5

你预期的定义

你认为的“第n个斐波那契数”是从n=1开始计数,且第1项为0:

  • 第1个=0,第2个=1,第3个=1,第4个=2,第5个=3
    对应函数里的fibonacci(n-1)。

两种修复方案

方案1:修改函数匹配你的预期

调整终止条件,让数列从n=1开始计数,第1项为0:

def fibonacci(n):
    if n <= 1:
        return 0
    elif n == 2:
        return 1
    else:
        return fibonacci(n-1) + fibonacci(n-2)

print(fibonacci(5)) # 返回3,符合预期

方案2:不修改函数,调整调用参数

如果保留原函数,调用时传入n-1即可得到你要的值:

print(fibonacci(4)) # 返回3,对应你预期的第5个值

内容的提问来源于stack exchange,提问作者Mark Vieira

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.04 13:50:27