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

求第n个Fibonacci数代码中temp、cur、prev变量作用咨询

斐波那契代码中temp、cur、prev变量的工作机制解析

先明确三个变量的初始含义:

  • prev:初始值为0,对应斐波那契数列的第0项(F₀=0)
  • cur:初始值为1,对应斐波那契数列的第1项(F₁=1)
  • temp:临时存储变量,用来中转数据,避免计算时覆盖需要保留的值

循环内的执行逻辑(以求第5项斐波那契数为例)

当n=5时,循环会执行4次(i从1到4,满足i < 5),每一步的变量变化如下:

初始状态:prev=0,cur=1

  1. 第1次循环(i=1)

    • temp = cur → 把当前cur的值(1)存到temp里
    • cur = cur + prev → 计算新的cur:1+0=1(对应F₂)
    • prev = temp → 把temp里保存的旧cur值(1)赋值给prev,此时prev变为F₁
      状态更新:prev=1,cur=1
  2. 第2次循环(i=2)

    • temp = cur → 暂存当前cur的值(1)
    • cur = cur + prev → 计算新cur:1+1=2(对应F₃)
    • prev = temp → 把旧cur值(1)赋值给prev,此时prev变为F₂
      状态更新:prev=1,cur=2
  3. 第3次循环(i=3)

    • temp = cur → 暂存当前cur的值(2)
    • cur = cur + prev → 计算新cur:2+1=3(对应F₄)
    • prev = temp → 把旧cur值(2)赋值给prev,此时prev变为F₃
      状态更新:prev=2,cur=3
  4. 第4次循环(i=4)

    • temp = cur → 暂存当前cur的值(3)
    • cur = cur + prev → 计算新cur:3+2=5(对应F₅)
    • prev = temp → 把旧cur值(3)赋值给prev,此时prev变为F₄
      最终返回cur=5,也就是第5项斐波那契数

为什么需要temp变量?

斐波那契数列的核心递推公式是Fₙ = Fₙ₋₁ + Fₙ₋₂,代码里cur代表当前要计算的项,prev代表前前项。如果没有temp,直接执行cur = cur + prev,原来的cur值(下一次循环需要的prev值)会被覆盖,之后给prev赋值时拿到的是更新后的cur,会打破递推关系导致计算错误。temp的作用就是临时保存旧的cur值,确保更新cur后,能把正确的旧值传给prev,让每一步递推都符合斐波那契数列的规则。

内容的提问来源于stack exchange,提问作者Thakur Saad

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.15 23:55:23