检查一个数字是否可以被6个PHP整除
我想检查一个数是否可以被6整除,如果不是,我需要增加它,直到可以被整除。
我怎样才能做到这一点 ?
简单:
if($number %6 != 0) { $number += 6 - ($number % 6); }
模数运算符给出了除法的余数,所以$ number%6是除以6时剩余的数量。这将比循环和不断重复检查更快。
如果减less是可以接受的,那就更快了:
$number -= $number % 6;
if ($variable % 6 == 0) { echo 'This number is divisible by 6.'; }:
可以被6整除:
$variable += (6 - ($variable % 6)) % 6; // faster than while for large divisors
所以你想要6的下一个倍数,是吗?
你可以把你的号码除以6,然后把它重新设定一遍,然后再乘以:
$answer = ceil($foo / 6) * 6;
$num += (6-$num%6)%6;
不需要一个while循环! 模数(%)返回分区的其余部分。 IE 20%6 = 2.6-2 = 4.20 + 4 = 24. 24可被6整除。
使用Mod %(模数)运算符
if ($x % 6 == 0) return 1; function nearest_multiple_of_6($x) { if ($x % 6 == 0) return $x; return (($x / 6) + 1) * 6; }
只需运行一个while循环,它将继续循环(并增加数字),直到数字被6整除。
while ($number % 6 != 0) { $number++; }
假设$foo
是一个整数:
$answer = (int) (floor(($foo + 5) / 6) * 6)
对于微型优化怪胎:
if ($num % 6 != 0) $num += 6 - $num % 6;
%
更多评估,但更less的分支/循环。 😛
你为什么不使用模运算符 ?
尝试这个:
while ($s % 6 != 0) $s++;
或者这是你的意思?
<? $s= <some_number>; $k= $s % 6; if($k !=0) $s=$s+6-$k; ?>
result = initial number + (6 - initial number % 6)