피보나치 수열의 각 항은 바로 앞의 항 두 개를 더한 것이 됩니다. 1과 2로 시작하는 경우 이 수열은 아래와 같습니다.

1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ... 

짝수이면서 4백만 이하인 모든 항을 더하면 얼마가 됩니까?


In [16]:
x1 = 1
x2 = 2
target = 0
fibonacci = [2]

while target < 4_000_000 do
  target = x1 + x2
  x1 = x2
  x2 = target
  fibonacci.push target if (target % 2) == 0
end

In [17]:
fibonacci


Out[17]:
[2, 8, 34, 144, 610, 2584, 10946, 46368, 196418, 832040, 3524578]

In [18]:
fibonacci.inject(0) { |sum, item| sum += item}


Out[18]:
4613732

In [ ]: