Я искал Stack Overflow и не нашел свой вопрос, поэтому считаю, что это будет безопасно публиковать. Я работаю над стандартной частью кода, которая печатает первые 10 целых чисел последовательности Фибоначчи, а затем добавляет эти первые 10 целых чисел вместе и печатает сумму. Код, который я написал, по существу работает, но я пытаюсь объединить карту и внедрить методы внизу, чтобы сделать код более эффективным. Любой вход был бы весьма признателен.Ruby Сумма целых чисел для последовательности Фибоначчи
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)}
Я не вижу смысла в показе рекурсивной альтернативы. Речь идет не о вычислении последовательности, а о суммировании их значений. –