在做项目 euler #2 的更多红宝石方式中,部分代码是
while((v = fib(i)) < 4_000_000)
s+=v if v%2==0
i+=1
end
有没有办法转变i += 1
为更具功能性的编程风格构造?
我能想到的最好的是
Float::MAX.to_i.times do |i|
v = fib(i)
break unless v < 4_000_000
s += v if v%2==0
end
因为你不能调用.times
浮点数。