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

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

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)

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

1

Решение

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

В математике кратное означает, что остаток равен 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
2

Другие решения

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

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

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

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

2

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

В вычислительной технике 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
1

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

function check($a,$b){
if($b % $a > 0){
return 0;
}
else{
return 1;
}
}
1
По вопросам рекламы [email protected]