Bir sayı 6 PHP ile bölünebilir olup olmadığını kontrol

9 Cevap

Ben bir numara 6 ile bölünebilir olup eğer bölünebilir hale gelene kadar ben bunu artırmak gerekir olmadığını kontrol etmek istiyorum.

Bunu nasıl yapabilirsiniz?

Teşekkürler

9 Cevap

Basit:

if($number %6 != 0) {
  $number += 6 - ($number % 6);
}

modulus operatörü bölünme kalanı verir, böylece $ numarası% 6 6 bölünmesi sırasında arta kalan miktardır. Bu bir döngü yaparak daha hızlı olacak ve sürekli tekrar kontrol edecektir.

Azalan kabul edilebilir ise bu daha hızlıdır:

$number -= $number % 6;

Yani 6 sonraki birden istiyorum, bu nedir?

Sen, 6 ile numaranızı bölün ardından ceil , ve tekrar çarpabilirsiniz:

$answer = ceil($foo / 6) * 6;
$num += (6-$num%6)%6;

while döngüsünde gerek! Modülo (%) Bir bölme kalanı verir. IE 20% 6 = 2. 6-2 = 4.. 20 +4 = 24. 24. 6 ile bölünebilir.

Mod% (modül) operatörünü kullanın

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


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

    return (($x / 6) + 1) * 6;
}

Sadece sayı 6 ile bölünebilir kadar döngü devam ediyor (ve sayısını artırmak) bir süre döngü çalıştırın.

while ($number % 6 != 0) {
    $number++;
}
if ($variable % 6 == 0) {
    echo 'This number is divisible by 6.';
}:

6 ile bölünebilir olun:

$variable += (6 - ($variable % 6)) % 6; // faster than while for large divisors

$foo bir tam sayı olduğu varsayılır:

$answer = (int) (floor(($foo + 5) / 6) * 6)

Mikro-optimizasyon düşkünleri için:

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

Daha az dallanma / Daha % değerlendirmelerini, ama döngü. :-P

Neden kullanmayın Modulus Operator?

Bu deneyin:

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

Yoksa bu da ne demek olduğunu?

<?

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

 if($k !=0)    $s=$s+6-$k;
?>