Нахождение суммы четных членов в последовательности Фибоначчи

#!/usr/bin/python2

"""
Each new term in the Fibonacci sequence is generated by adding the previous two terms. By starting with 1 and 2, the first 10 terms will be:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
By considering the terms in the Fibonacci sequence whose values do not exceed four million, find the sum of the even-valued terms.
"""

odd, even = 0,1
total = 0
while True:
    odd = odd + even  #Odd
    even = odd + even     #Even
    if even < 4000000:
        total += even
    else:
        break
print total

Мой алгоритм:

  1. Если я возьму первые 2 числа как 0, 1; число, которое я найду первым в цикле while, будет нечетным числом и первым в серии Фибоначчи.
  2. Таким образом я вычисляю четное число и каждый раз прибавляю значение четного числа к общему.
  3. Если значение even больше 4e6, я выхожу из бесконечного цикла.

Я столько всего перепробовал, но мой ответ всегда неправильный. Гугление говорит, что ответ должен быть 4613732, но я всегда получаю 5702886

Спасибо за поддержку.

6
задан Zero Piraeus 22 January 2015 в 17:53
поделиться