397 подписчиков

Решение 2 задачи проекта Эйлера: Четные числа Фибоначчи

Алгоритм решения задачи довольно простой, но вдруг кому пригодится.

Условия задачи

"Каждый следующий элемент ряда Фибоначчи получается при сложении двух предыдущих. Начиная с 1 и 2 первые 10 элементов будут:

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

Найдите сумму всех четных элементов ряда Фибоначчи, которые не превышают четыре миллиона."

Решение задачи

Решение задачи Эйлера #2
Решение задачи Эйлера #2

Алгоритм решения буквально повторяет само определение чисел Фибоначчи: "следующий элемент получается при сложении двух предыдущих".

Создаем несколько переменных:

  • fib1 - первое число Фибоначчи
  • fib2 - второе число Фибоначчи
  • fib_next = fib1 + fib2 - следующее за ними число Фибоначчи
  • event_sum - сумма всех четных элементов ряда Фибоначчи

Находим следующую пару чисел (event_sum). Присваиваем первому числу р(fib1) значение второго(fib2), второму - значение fib_next.

Если число четное (остаток от деления на 2 равен нулю), прибавляем его к event_sum.

Числа перебираем в цикле while, пока не дойдем до 4000000.

Можно ли ускорить работу программы?

Запустил несколько раз и получил разброс времени выполнения от 0.4 до 0.55 секунд.

Попробовал увеличить число итераций в сто раз - перебирал числа Фибоначчи до четырехсот миллионов.

Время вычисления не увеличилась, видимо слишком простые пока вычисления.

Ответ на задачу:

P.S. Изначальная цель блога - получить "фидбек" в комментариях, чтобы более опытные "кодеры" указывали мне на ошибки, советовали и всячески помогали в саморазвитии.

Также приглашаю всех на мой сайт)

На нем Вы можете посмотреть ответ на задачу Эйлера #2 (когда необходима лишь небольшая подсказка) и последний, самый быстрый вариант решения.

Мы ждем, когда Вы уже подпишитесь на канал)
Мы ждем, когда Вы уже подпишитесь на канал)

В общем, добро пожаловать на канал))