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

Zybooks Labs期末项目:斐波那契数列函数实现问题求助(得分13/25)

斐波那契函数代码错误排查

核心错误点

  • 函数内部包含冗余打印输出
    题目仅要求函数返回对应索引的斐波那契值,你的代码在函数内部额外打印了整个数列(如print("0 ", end="")、循环内的打印语句等)。Zybooks的测试用例只会校验函数返回值,多余的输出会干扰测试判定逻辑,直接导致扣分。

  • 边界情况处理错误

    • 当n=0时,按要求应返回0,但你的代码会直接走到最后打印c=1并返回1,完全不符合预期。
    • 当n=1时,虽然返回结果正确,但函数内部仍执行了不必要的打印操作,同时没有针对该边界做直接返回的优化。
  • 计算逻辑存在冗余与错位风险
    初始值c=1的设置多余,循环范围range(1,n)的逻辑不够清晰,虽然部分n值能返回正确结果,但整体逻辑存在错位隐患,且引入了不必要的中间变量。


修正后的代码

def fibonacci(n):
    if n < 0:
        return -1
    if n == 0:
        return 0
    if n == 1:
        return 1
    a, b = 0, 1
    for _ in range(2, n+1):
        a, b = b, a + b
    return b

if __name__ == '__main__':
    start_num = int(input("Enter a number: "))
    print(f'fibonacci({start_num}) is {fibonacci(start_num)}')

修正说明

  1. 移除函数内部所有打印语句,仅保留核心返回逻辑
  2. 明确处理n<0、n=0、n=1的边界情况,确保直接返回正确值
  3. 调整循环范围为range(2, n+1),从第2项开始计算到第n项,逻辑更直观
  4. 使用变量交换简化斐波那契计算,删除冗余中间变量

内容的提问来源于stack exchange,提问作者Alexis Rash

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.25 20:11:15