项目Euler Prob#2 Ruby

时间:2014-11-28 23:29:31

标签: ruby

这是我在这里的第一篇文章,是的,因为你可以告诉我开始学习如何编码。我试图解决Euler Project的问题#2但是第5行仍然遇到以下错误:

undefined method '+' for nil:NilClass(NoMethodError)

我搜索了这个错误,显然它无论我试图应用这种方法都无法识别它。这是我的代码

def FiboV1()
    fibo_list=[1,2]
    for i in fibo_list
        if i>=2 then
            y=fibo_list[i]+fibo_list[i-1]
            fibo_list.push(y)
        end
    end
    print fibo_list
end

我不明白为什么' +'在这里提出一个未定义的方法,你能帮忙吗?

非常感谢!!!

1 个答案:

答案 0 :(得分:0)

问题是数组索引开始从0开始计数(而不是1)。当您第一次输入if块时,使用fibo_list[i]来呼叫i = 2,但该元素不存在。

如果您将其更改为:

,该行应该可以使用
y = fibo_list[i-1] + fibo_list[i-2]

我没有检查其他问题,因为你没有解释你的代码应该做什么。