检查一个数字是否可以被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)