숫자를 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
'IT' 카테고리의 다른 글
PowerShell 필수 매개 변수는 다른 매개 변수에 따라 다릅니다. (0) | 2023.08.26 |
---|---|
jQuery를 사용하여 상대 경로 결정 (0) | 2023.08.26 |
Oracle current_timestamp를 초 단위로 변환 (0) | 2023.08.26 |
Spring Boot에서 Kafka 소비자 활성화/비활성화 제어 (0) | 2023.08.26 |
CSS로 입력 및 제출 버튼을 스타일화하는 방법은 무엇입니까? (0) | 2023.08.26 |