【发布时间】:2015-03-08 21:34:09
【问题描述】:
斐波那契数列是 1, 1, 2, 3, 5, 8, ... 前两个元素是 1。每个连续的元素是前两个元素的和。
我无法理解下面的代码。我知道i1, i2 = i2, i1+i2 会返回1, 1, 2, ...,但它怎么会返回..., 3, 5, 8, ...? i1, i2 = 1, 1 已指定;这个3 来自哪里?如果我理解了这一点,我想我会明白为什么会变成5, 8, ...。
def fib_to(max)
i1,i2 = 1,1
while i1 <= max
yield i1
i1, i2 = i2, i1+i2
end
end
fib_to(100) do |f|
#yeild(i1) is replaced by this |f|?
puts f
end
结果
1
1
2
3
5
8
13
21
34
55
89
【问题讨论】:
-
你知道什么是斐波那契数列吗?
-
@sawa 让我们尽量记住语气。