Я новичок в Python и учусь через edX и пытаюсь решить математические задачи ProjectEuler. Вторая проблема заключается в суммировании всех четных чисел Фибоначчи, которые меньше, чем 4 000 000. Я смог решить эту проблему с помощью Python, но не таким способом, который меня устраивал.
Сначала я определил функцию fib:
def fib(n):
if n == 0:
return 0
elif n == 1:
return 1
else:
return fib(n-1) + fib(n-2)
Затем я смог напечатать все четные числа Фибоначчи со значением менее 4 000 000:
n = 0
while True:
if fib(n) < 40000000 and fib(n) % 2 == 0:
print(fib(n))
n = n+1
elif fib(n) < 4000000 and fib(n) % 2 != 0:
n = n+1
else:
break
Затем я вручную сформировал список из того, что было напечатано, и суммировал список. Проблема в том, что я не хочу этого делать. Я хочу, чтобы компьютер формировал список по мере поступления, а затем суммировал значение. Кто-нибудь знает, как я могу это сделать? Спасибо!