IT

숫자를 6 PHP로 나눌 수 있는지 확인하기

itgroup 2023. 8. 26. 10:42
반응형

숫자를 6 PHP로 나눌 수 있는지 확인하기

나는 어떤 숫자가 6으로 나누어지는지 확인하고 싶고, 만약 그렇지 않다면 나는 그것이 분할이 될 때까지 그것을 늘려야 합니다.

내가 어떻게 그럴 수 있을까?

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

계수 연산자는 나머지 분할을 제공하므로 $number% 6은 6으로 나눌 때 남은 양입니다.이 작업은 루프를 수행하고 지속적으로 다시 확인하는 것보다 더 빠릅니다.

감소하는 것이 허용된다면 이는 훨씬 더 빠릅니다.

$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
$num += (6-$num%6)%6;

한동안 루프할 필요가 없습니다!모듈로(%)는 나머지 눈금을 반환합니다.IE 20%6 = 2.6-2 = 4.20+4 = 24.24는 6으로 나뉩니다.

그럼 6의 다음 배수를 원하는 건가요?

숫자를 6으로 나눈 다음 다시 곱하면 됩니다.

$answer = ceil($foo / 6) * 6;

저는 모듈로를 두 번 부르는 다른 대답들을 봅니다.

제가 선호하는 것은 php에게 같은 일을 두 번 이상 부탁하지 않는 것입니다.이러한 이유로 나는 나머지를 캐시합니다.

다른 개발자들은 추가 전역 변수를 생성하지 않거나 모듈로 연산자를 두 번 사용하는 것에 대한 다른 정당성을 갖는 것을 선호할 수 있습니다.

코드: (데모)

$factor = 6;
for($x = 0; $x < 10; ++$x){  // battery of 10 tests
    $number = rand( 0 , 100 );
    echo "Number: $number Becomes: ";
    if( $remainder = $number % $factor ) {  // if not zero
        $number += $factor - $remainder;  // use cached $remainder instead of calculating again
    }
    echo "$number\n";
}

가능한 출력:

Number: 80 Becomes: 84
Number: 57 Becomes: 60
Number: 94 Becomes: 96
Number: 48 Becomes: 48
Number: 80 Becomes: 84
Number: 36 Becomes: 36
Number: 17 Becomes: 18
Number: 41 Becomes: 42
Number: 3 Becomes: 6
Number: 64 Becomes: 66

모드 %(계수) 연산자를 사용합니다.

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


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

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

숫자를 6으로 나눌 수 있을 때까지 계속 반복(그리고 숫자를 증가)하는 잠시 루프를 실행하기만 하면 됩니다.

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

가정하면$foo는 정수입니다.

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

마이크로 최적화 이상 현상의 경우:

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

더 많은 평가%그러나 분기/루프가 적습니다. :-P

계수 연산자를 사용하는 것이 어떻습니까?

사용해 보십시오.

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)

언급URL : https://stackoverflow.com/questions/2090475/checking-if-a-number-is-divisible-by-6-php

반응형