В PHP почему 24% 1 равно 1, не должно ли оно быть равно 0? - PullRequest
0 голосов
/ 30 апреля 2019

У меня есть условный оператор, чтобы проверить, является ли число нечетным или четным в PHP

<?php



$stdin = fopen("php://stdin", "r");

fscanf($stdin, "%d\n", $N);

fclose($stdin);


function weird_or_not($N) {

    //check that n is between 1 and 100
    if ($N >= 1 && $N <= 100) {

        //check if n is even
        if ($N % 2 == 0) {

            // check if n is in the inclusive range 2 - 5
            if ($N >= 2 && $N <= 5) {
                echo 'Not Weird';
            }

            // check if n is in the inclusive range 6 - 20
            elseif ($N >= 6 && $N <= 20) {
                echo 'Weird';
            }

            // check if n is greater than 20
            elseif ($N > 20) {
                echo 'Not Weird';
            }
        }

        // otherwise n is odd
        else {
            echo 'Weird';
            echo $N % 2;
        }
    }
}

echo weird_or_not($stdin);


?>

Когда у меня есть ввод четного числа, он выводит 'Weird', а когда я печатаю $N% 2, для любого четного числа он дает результат как 1, когда он должен быть 0. Так почему четное число по модулю 2 возвращает 1, когда оно должно возвращать 0?

...