Оглавление > Четные числа Фибоначчи (F#)
04.02.2023

Четные числа Фибоначчи (F#)

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

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

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

Решение в лоб

  1. Генератор последовательности чисел Фибоначчи
let fib = Seq.unfold (fun (a, b) -> Some(b, (b, a + b))) (1, 2)
  1. Решение
  • вычисление последовательности элементов не превышающих 4 млн
  • фильтрация четных
  • нахождение суммы
  • вывод результата
let answer = fib |> Seq.takeWhile (fun x-> x < 4_000_000)
            |> Seq.filter (fun x-> x%2 = 0)
            |> Seq.sum

printfn $"the answer is {answer}" //the answer is 4613732
Задать вопрос автору, обсудить