Stack Overflow를 검색 한 결과 내 질문을 찾지 못해 게시하는 것이 안전하다고 생각합니다. 필자는 피보나치 시퀀스의 처음 10 개의 정수를 출력하고 그 처음 10 개의 정수를 더하고 합계를 인쇄하는 표준 코드 조각을 만들고 있습니다. 필자가 작성한 코드는 본질적으로 작동하지만 코드를 더욱 효율적으로 만들 수 있도록지도를 결합하여 맨 아래에 메소드를 삽입하려고합니다. 모든 입력은 크게 감사하겠습니다.Ruby Integer for 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)}
나는 당신의 재귀 대안을 보여주는 어떤 목적을 볼 수 없습니다. 질문은 시퀀스를 계산하는 것이 아니라 값을 합산하는 것입니다. –