【发布时间】:2010-06-12 16:49:13
【问题描述】:
我正在尝试学习 Ruby,并且正在解决一些 Project Euler 问题。我这样解决了problem number two:
def fib(n)
return n if n < 2
vals = [0, 1]
n.times do
vals.push(vals[-1]+vals[-2])
end
return vals.last
end
i = 1
s = 0
while((v = fib(i)) < 4_000_000)
s+=v if v%2==0
i+=1
end
puts s
虽然这行得通,但它似乎不是很像 ruby ——我无法像第一个 (puts (0..999).inject{ |sum, n| n%3==0||n%5==0 ? sum : sum+n }) 那样想出任何好的纯 Ruby 答案。
【问题讨论】:
标签: ruby