banovski

Project Euler, Problem #2, Python

Nov 28th, 2021 (edited)
645
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.11 KB | None | 0 0
  1. #! /usr/bin/env python3
  2.  
  3. # Каждый следующий элемент ряда Фибоначчи получается при сложении двух
  4. # предыдущих. Начиная с 1 и 2, первые 10 элементов будут: 1, 2, 3, 5,
  5. # 8, 13, 21, 34, 55, 89, ... Найдите сумму всех четных элементов ряда
  6. # Фибоначчи, которые не превышают четыре миллиона.
  7.  
  8. # Решение №1
  9.  
  10. fib_list = [0,1]
  11. while fib_list[-1] < 4000000:
  12.     fib_list.append(fib_list[-1] + fib_list[-2])
  13.  
  14. print(sum(filter((lambda x: x % 2 == 0), fib_list[0:-1])))
  15.  
  16. # 4613732
  17.  
  18. # Решение №2
  19.  
  20. fib_list = [0,1]
  21. while fib_list[-1] < 4000000:
  22.     fib_list.append(fib_list[-1] + fib_list[-2])
  23.  
  24. even_fib_list = [x for x in fib_list[0:-1] if x % 2 == 0]
  25.  
  26. s = 0
  27. for i in even_fib_list:
  28.     s += i
  29.  
  30. print(s)
  31.  
  32. # 4613732
  33.  
  34. # Решение №3
  35.  
  36. fib_list = [0,1]
  37. while fib_list[-1] < 4000000:
  38.     fib_list.append(fib_list[-1] + fib_list[-2])
  39.  
  40. s = 0
  41. for i in fib_list:
  42.     if i % 2 == 0:
  43.         s += i
  44.  
  45. print(s)
  46.  
  47. # 4613732
Add Comment
Please, Sign In to add comment