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

使用for循环实现斐波那契数列的代码逻辑困惑

斐波那契代码else分支变量变化详解

先看代码里的初始变量:

a = 1
b = 1

循环的term会从0遍历到49(因为range(50)生成0到49的整数)。前三次循环(term=0、1、2)都是直接打印数列的前三项,这时候a和b还保持初始的1、1不变。

从term=3开始,才会进入else分支,咱们一步步拆解每一次循环里的变量变化:

第一次进入else(term=3)

  • 执行c = a + b:用当前的a(1)和b(1)相加,得到c=2,这就是斐波那契数列的第4项(对应term=3)
  • 打印完这个数后,执行a = b:把a更新成原来的b的值,也就是1
  • 再执行b = c:把b更新成刚算出来的c的值,也就是2
    此时变量状态:a=1,b=2

第二次进入else(term=4)

  • 执行c = a + b:用当前的a(1)和b(2)相加,得到c=3,这是数列的第5项
  • 打印后,a = b:a变成2
  • b = c:b变成3
    此时变量状态:a=2,b=3

第三次进入else(term=5)

  • 执行c = a + b:2+3=5,对应数列的第6项
  • 打印后,a = b:a变成3
  • b = c:b变成5
    此时变量状态:a=3,b=5

核心规律

每次else分支的逻辑就是:

  1. 用当前的a和b(数列里的前两个数)算出下一个数c
  2. 把a和b“往前挪一位”:a变成上一次的b,b变成刚算出的c
    这样下一次循环时,a和b就正好是数列里最新的两个前项,相加就能得到下一个斐波那契数,以此类推循环47次(从term3到term49),就能算出剩下的所有项。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 08:20:48