我已經搜索了堆棧溢出,並沒有找到我的問題,所以我認爲這將是安全的發佈。我正在編寫一個打印Fibonacci序列的前10個整數的標準代碼段,然後將這些前10個整數值加在一起並打印總和。我寫的代碼基本上是可行的,但我試圖在底部結合地圖和注入方法,以使代碼更高效。任何投入將不勝感激。Fibonacci序列的整數紅寶石求和
def fib(n)
return 1 if n <= 2
fib_index = 3
a, b = 1, 1
while fib_index <= n
c = a + b
a = b
b = c
fib_index += 1
end
c
end
p (1..10).map {|i| fib(i)}
p (1..10).inject {|sum, i| sum + fib(i)}
我也有興趣在使用遞歸的方法:
def fibonacci(n)
return n if n <= 1
fibonacci(n - 1) + fibonacci(n - 2)
end
p (1..10).map {|i| fibonacci(i)}
p (1..10).inject {|sum, i| sum + fibonacci(i)}
我看到在顯示你的遞歸替代沒有目的。問題不在於計算順序,而是在於總結它們的價值。 –