a = 1; b = 2
fibonacci = []
while fibonacci.length < 100
fibonacci.push(a)
fibonacci.push(b)
a = a + b; b = a + b
end
push fibonacci
的錯誤消息是「未定義的方法`推」主:目標文件」這個算法爲什麼不產生100以下的斐波納契序列?
a = 1; b = 2
fibonacci = []
while fibonacci.length < 100
fibonacci.push(a)
fibonacci.push(b)
a = a + b; b = a + b
end
push fibonacci
的錯誤消息是「未定義的方法`推」主:目標文件」這個算法爲什麼不產生100以下的斐波納契序列?
你試圖#push最後一行數組本身! :)
這就是它的抱怨。 push
方法正在'main'對象上調用,並且push
不是Kernel
方法。我想你的意思是puts
。否則它看起來沒問題,如果有點不習慣。當然,你可以找到很多對可能讀一位更清晰的網站在這個問題上的Ruby解決方案(見here for a recursive one。)
正如其他人所說前的最後一行應該是「放」 還有你的數字是錯誤的。
a = 1; b = 1
fibonacci = []
while fibonacci.length < 100
fibonacci << a
fibonacci << b
a += b
b += a
end
puts fibonacci
而且還有FIB開始於1與第二元件也爲1 這使你序列關閉,如果啓動在1,2
蛋白原= 1,1,2,3 ,5,8,...
有些人認爲0和1(而不是1和1)是起始數字,例如見[斯隆](http://oeis.org/A000045)(這只是爲了提供信息,我不想挑剔或其他任何東西)。 –
你是對的,在系統中,它是在0,1,1,..但總的來說,它是1,1,但從來沒有1,2 – sonnyhe2002
您正試圖在最後一行#推動陣列本身! :) - 這就是它的抱怨 - 該方法正在'主'對象上被調用...我猜你的意思是'puts' –
謝謝!愚蠢的錯誤,應該說「放」@約瑟夫魏斯曼 – megashigger