PHP деление с остатком

Иногда случаются ситуации, когда необходимо проверить кратность одного чиста другому. Как правило, это нужно при оформлении прайс-листов или каких либо списков, в которых было бы не плохо выделить каждую вторую или третью строчку для удобочитаемости.
Первое что приходит на ум новичку в программировании, это разделить одно число на другое, и вычесть целую часть результата из частного. Т.е. получить дробную часть от деления. А дальше все просто, если дробная ясть НЕ равна нулю, то число НЕ кратно второму. И наоборот. Если дробная часть равна нулю, то число кратно второму.
Допустим есть переменная $a, которую нужно проверить на кратность числу $b, тогда код будет выглядеть примерно так:

<?php
$x = $a / $b;
$y = intval ($x); // Выделяем целую часть от деления.
$z = $x — $y;
if ($z == 0) {
echo «Число $a кратно числу $b»;
}else{
echo «Число $a НЕ кратно числу $b»;
}
?>

Данную программу можно немного упростить, не делать лишнее вычисление, а проверить два числа $x и $y на равенство. Ведь, если результат деления и целая часть от этого деления равны, то и дробная часть, соответственно, будет равна нулю.
Тогда программа проверки будет выглядеть так:

<?php
$x = $a / $b;
$y = intval ($x); // Выделяем целую часть от деления.
if ($x == $y) {
echo «Число $a кратно числу $b»;
}else{
echo «Число $a НЕ кратно числу $b»;
}
?>

Однако, умные люди за нас уже подумали и подобных схем выстраивать не обязательно.
Есть такое интересное математическое действие, которое обозначается в php (да и не только в php) как процент % (вместо знака деления).
Т.е. пишем $z = $a % $b;
В переменную $z будет записано значение дробной части от деления $a / $b.
В общем, выполнение одного данного деления заменяет собой сразу три вычисления:
$x = $a / $b;
$y = intval ($x); // Выделяем целую часть от деления.
$z = $x — $y;

Таким образом, первый рассмотренный вариант кода из восьми строчек сокращается до шести:

<?php
$z = $a % $b; // Присваиваем переменной $z дробную часть от деления $a / $b
if ($z == 0) {
echo «Число $a кратно числу $b»;
}else{
echo «Число $a НЕ кратно числу $b»;
}
?>

Данный код можно сократить на одну строчку, записав его следующим образом:

<?php
if (!($a % $b)) {
echo «Число $a кратно числу $b»;
}else{
echo «Число $a НЕ кратно числу $b»;
}
?>

В данном случае мы проверяем дробную часть от деления двух чисел на его отсутствие (восклицательный знак обозначает логическое «НЕ»). Если результат вычисления $a % $b НЕ имеет значения (или равен нулю), то число $a кратно $b иначе НЕ кратно.

или

<?php
if ($a % $b) {
echo «Число $a НЕ кратно числу $b»;
}else{
echo «Число $a кратно числу $b»;
}
?>

Где можно применять?

Знания целочисленного деления в PHP будут очень полезны, если вам нужно сравнивать два числа, создавать число-перевертыш (популярное упражнение), или, к примеру, программу под названием FizzBuzz. Суть ее в том, что вам предстоит написать цикл от 1 до 100, который делит каждое число на 3 и 5. Если число, поделенное на 3, в остатке дало 0, то пишем Fizz, если поделенное на 5, то Buzz, а если, поделив и 5, и 3, в остатке получаем 0, то пишем FizzBuzz. Это очень популярное задание на собеседованиях. Если вы выполнили его самостоятельно, то можете собой гордиться.

Или, например, нам предстоит из числа 452 вывести все его числа (4, 5, 2).

Безусловно, целочисленное и остаточное деления полезны и встречаются довольно часто, использовать их не так удобно, как в Python, но все же важно.

Теперь вы на шаг ближе к изучению языка программирования PHP, а в будущем станете еще ближе, если будете так же усердно преодолевать трудности.

Источник

>Как оформить?

Например, возьмем первую функцию, все остальные выполняются примерно также.

$result = intdiv(10, 3); echo $result;

Например, возьмем первую функцию, все остальные выполняются примерно также.

$result = intdiv(10, 3);
echo $result;

Добавить комментарий

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