Определение/реализация последовательности чисел 2 через 2

Стоит задача реализовать последовательность чисел по условию 2 через 2, то есть числа должны идти в таком порядке: 0, 1, 4, 5, 8, 9, 12, 13, 16, 17… Для реализации массива в цикле используем увеличение на 4 и деление по модулю на 4

$arr = [];
for ($i = 0; $i < 20; $i = $i + 4) {
    if (!($i%4)) {
        $arr[] = $i;
        $arr[] = $i + 1;
    }
}

print_r($arr);

Получаем массив:

Array
(
    [0] => 0
    [1] => 1
    [2] => 4
    [3] => 5
    [4] => 8
    [5] => 9
    [6] => 12
    [7] => 13
    [8] => 16
    [9] => 17
)

Для определения любого числа из данной последовательности используем рекурсию

function detectNum($n) {
    if ($n <= 0) {
        return in_array($n, [0, -3]);
    }
    $offset = $offset - 4;
    return detectNum($n);
}

 

Оставить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *