Как я могу проверить, является ли число кратным вводу - PHP

Я пытаюсь построить функцию, которая принимает входной номер и проверяет, является ли следующий номер кратным этому числу.

function checkIfMult($input,$toBeChecked){
   // some logic
}

пример:

checkIfMult(2,4) // true
checkIfMult(2,6) // true
checkIfMult(2,7) // false

checkIfMult(3,6) // true
checkIfMult(3,9) // true
checkIfMult(3,10) // false

Мой первый инстинкт был использовать массивы

$tableOf2 = [2,4,6,8,10,12,14,16,18]

Но тогда такой вызов был бы крайне непрактичным:

checkIfMult(6,34234215)

Как я могу проверить, является ли что-то кратным входному?

5 ответов

Решение

Используйте оператор %.

Оператор по модулю делит числа и возвращает остаток.

В математике кратное означает, что остаток равен 0.

function checkIfMult($input,$toBeChecked){
   return $toBeChecked % $input === 0; 
}

function checkIfMult($input, $toBeChecked){
   console.log('checkIfMult(' + $input +',' + $toBeChecked + ')', $toBeChecked % $input === 0);
   return $toBeChecked % $input === 0;
}

checkIfMult(2,4) // true
checkIfMult(2,6) // true
checkIfMult(2,7) // false

checkIfMult(3,6) // true
checkIfMult(3,9) // true
checkIfMult(3,10) // false

Вы можете использовать оператор модуля, если результат равен 0, то функция должна вернуть true. Оператор модуля (%) выполняет деление и возвращает остаток.

http://php.net/manual/en/language.operators.arithmetic.php

Кроме того, вы также можете разделить $tobechecked на $input и проверить, есть ли остаток, используя функцию floor.

if(is_int($result))
 { echo "It is a multiple";
    }
 else
 { echo "It isn't a multiple"; }

Вы можете использовать оператор%

function check($a,$b){
   if($b % $a > 0){
     return 0;
   }
   else{
    return 1;
   }
}

Вы можете по модулю % Подобно:

В вычислительной технике modulo Операция находит остаток после деления одного числа на другое (иногда называется модулем).

function checkIfMult($input,$toBeChecked){
   return !( $toBeChecked % $input );
}

Это следовать за результатом

echo "<br />" . checkIfMult(2,4); // true
echo "<br />" . checkIfMult(2,6); // true
echo "<br />" . checkIfMult(2,7); // false

echo "<br />" . checkIfMult(3,6); // true
echo "<br />" . checkIfMult(3,9); // true
echo "<br />" . checkIfMult(3,10); // false
Другие вопросы по тегам