проверка, является ли число делимым 6 PHP

Я хочу проверить, является ли число делимым 6 и если не я должен увеличить его, пока это не становится делимым.

как я могу сделать это?

50
задан mickmackusa 28 January 2018 в 16:43
поделиться

10 ответов

Почему вы не используете оператор модуля ?

Попробуйте это:

while ($s % 6 != 0) $s++;

Или это то, что вы имели в виду ?--

<?

 $s= <some_number>;
 $k= $s % 6;

 if($k !=0)    $s=$s+6-$k;
?>
-121--1069358-
if ($number % 6 != 0) {
  $number += 6 - ($number % 6);
}

Оператор Оператор дает оставшуюся часть подразделения, поэтому доллар% 6 - это количество, оставленную при разделении на 6. Это будет быстрее, чем выполнение петли и постоянно перепроверяет.

Если уменьшение приемлемо, то это еще быстрее:

$number -= $number % 6;
121
ответ дан 7 November 2019 в 10:32
поделиться
$num += (6-$num%6)%6;

Нет необходимости в а пока цикла! Модуло (%) возвращает оставшуюся часть подразделения. Т.е. 20% 6 = 2. 6-2 = 4. 20 + 4 = 24. 24 делится на 6.

6
ответ дан 7 November 2019 в 10:32
поделиться

Просто запустите цикл while, который будет продолжать цикл (и увеличивать число) до тех пор, пока число не станет делимым на 6.

while ($number % 6 != 0) {
    $number++;
}
1
ответ дан 7 November 2019 в 10:32
поделиться

Предполагая, что $foo - это целое число:

$answer = (int) (floor(($foo + 5) / 6) * 6)
1
ответ дан 7 November 2019 в 10:32
поделиться
if ($variable % 6 == 0) {
    echo 'This number is divisible by 6.';
}:

Сделайте делимым на 6:

$variable += (6 - ($variable % 6)) % 6; // faster than while for large divisors
21
ответ дан 7 November 2019 в 10:32
поделиться
121 --- 1069355-

для могила микрооптимирования:

if ($num % 6 != 0)
    $num += 6 - $num % 6;

Больше оценок % , но меньше ветвления / цикла. :-P

0
ответ дан 7 November 2019 в 10:32
поделиться

Почему бы вам не использовать оператор модуля ?

Попробуйте:

while ($s % 6 != 0) $s++;

Или вы это имели в виду?

<?

 $s= <some_number>;
 $k= $s % 6;

 if($k !=0)    $s=$s+6-$k;
?>
0
ответ дан 7 November 2019 в 10:32
поделиться
result = initial number + (6 - initial number % 6)
.
-1
ответ дан 7 November 2019 в 10:32
поделиться

Использование мода % (модуль) Оператор

if ($x % 6 == 0) return 1;


function nearest_multiple_of_6($x) {
    if ($x % 6 == 0) return $x;    

    return (($x / 6) + 1) * 6;
}
2
ответ дан 7 November 2019 в 10:32
поделиться

Так что вы хотите, чтобы следующий кратнить 6, это то, что Это?

Вы можете разделить свой номер на 6, то CEIL это, и умножьте его снова:

$answer = ceil($foo / 6) * 6;
4
ответ дан 7 November 2019 в 10:32
поделиться
Другие вопросы по тегам:

Похожие вопросы: