Задача 2 Четные числа Фибоначчи
Каждый следующий элемент ряда Фибоначчи получается при сложении двух предыдущих. Начиная с 1 и 2, первые 10 элементов будут:
1, 2, 3, 5, 8, 13, 21, 34, 55, 89, ...
Найдите сумму всех четных элементов ряда Фибоначчи, которые не превышают четыре миллиона.
Решение на Python
Пока не особо владею приемами функционального программирования на Python, но кое-какие шаблонные фитчи использую. Прошу строго не судить о коде:
f=[1,2]
i=2
a=0
a=0
while f[i]<4000000:
f.append(f[i-1]+f[i-2])
i+=1
a=f[i]
a=f[i]
res=filter(lambda x:x%2==0, f)
print(sum(res))
Цикл создающий числа Фибоначчи на основе перебора элементов списка я позаимствовал из Википедии, немного видоизменив под задачу - вместо порога по количеству чисел я установил порог по значению в 4000000. Но данный цикл имеет недостаток- он создает одно число, которое больше установленного порога - 5702887, но оно является не четным и на результат не влияет.
Переменная i хранит индекс от 2-х, a - текущее значение числа числа.
filter(lambda x:x%2==0, f) - является функцией, возвращающей четные списка f, точнее возвращает функцию, которую передаем функции sum - она и возвращает результат суммы списка.
Результат работы = 4613732
В общем код получился не очень красивым но он выдает правильный результат и работает очень быстро - менее 0.0001 с. В будущем, освоив функциональное программирование я перепишу код, согласно требований -не использовать переменные и не превышать заданного порога.