Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Как получить числа Фибоначчи

Короткий ответ

Каждое число — сумма двух предыдущих:

<?php
 
$numbers = [];
[$a, $b] = [0, 1];
 
for ($i = 0; $i < 10; $i++) {
    $numbers[] = $a;
    [$a, $b] = [$b, $a + $b];
}
 
echo implode(', ', $numbers);

Результат:

0, 1, 1, 2, 3, 5, 8, 13, 21, 34

Генератор

Генератор выдаёт числа по одному и не хранит весь список:

<?php
 
function fibonacci(): Generator
{
    [$a, $b] = [0, 1];
 
    while (true) {
        yield $a;
        [$a, $b] = [$b, $a + $b];
    }
}
 
foreach (fibonacci() as $number) {
    if ($number > 100) {
        break;
    }
 
    echo $number, ' ';
}

Результат:

0 1 1 2 3 5 8 13 21 34 55 89

Функции из этого ответа

  • Generator — Объект, который возвращает функция с `yield`.
  • iterator_to_array — Превращает итератор или генератор в массив.
  • array_sum — Возвращает сумму значений массива.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.