Определяем кратность одного числа другому

Определяем кратность одного числа другому

Основные вопросы статьи:
  1. Как проверить кратность чисел.
  2. Определяем кратность числа другому.
  3. Задать кратность числа.
Иногда случаются ситуации, когда необходимо проверить кратность одного чиста другому. Как правило, это нужно при оформлении прайс-листов или каких либо списков, в которых было бы не плохо выделить каждую вторую или третью строчку для удобочитаемости. Первое что приходит на ум новичку в программировании, это разделить одно число на другое, и вычесть целую часть результата из частного. Т.е. получить дробную часть от деления. А дальше все просто, если дробная чясть НЕ равна нулю, то число НЕ кратно второму. И наоборот. Если дробная часть равна нулю, то число кратно второму. Допустим есть переменная $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»; } ?>
В этом случае мы проверяем некратность одного числа другому. Если результат деления $a % $b имеет какое то значение отличное от нуля, то число $a НЕ кратно $b иначе кратно.

Определяем кратность одного числа другому: 2 комментария

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

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