我想在 ruby 中生成斐波那契数列,直到最大值达到最大值,比如 50000。我写了以下代码段:
high = 50000
arr = [0, 1]
while arr.last < high do
arr.inject{|a, i| arr.push(arr[-2] + arr[-1])}
end
puts arr.last
这会导致程序停止。我实际上是 ruby 的新手,inject
在 ruby 的同一个语句中是否有一种解决 ifs 和 while 的好方法?对于我正在使用的上述方法,有什么更好的方法。