【发布时间】:2021-12-01 21:27:57
【问题描述】:
def fibonacci(n):
prev = curr = 1
yield 1
while curr < n:
yield curr
#1
prev = curr
curr = curr + prev
#or
#2
prev ,curr = curr, curr + prev
我这里有这个斐波那契代码,但我不明白为什么当我分配时:
prev = curr #first
curr = curr + prev #second
fibonacci(10)
结果:11248
当我分配时给出不同的答案
prev ,curr = curr, curr + prev
fibonacci(10)
结果:112358
这给出了正确的斐波那契数列。有人可以向我解释为什么会这样吗?
提前感谢您的意见。
【问题讨论】:
-
在这第一个你基本上是在做
curr = 2*curr -
试着逐行在纸上写下每一步的
curr和prev的值。或者添加一些调试/打印行