가장 가까운 배수로 반올림: C의 종합 분석
숫자를 다른 수의 가장 가까운 배수로 반올림하는 작업 프로그래밍에서 흔히 볼 수 있는 것입니다. 이 기사에서는 C에서 이 작업을 수행하는 최선의 접근 방식을 살펴보겠습니다.
원래 구현
일반적으로 사용되는 한 가지 방법은 다음과 같습니다.
int roundUp(int numToRound, int multiple) { if (multiple == 0) { return numToRound; } int roundDown = ((int)(numToRound) / multiple) * multiple; int roundUp = roundDown + multiple; int roundCalc = roundUp; return (roundCalc); }
이 구현은 간단해 보이지만 제한 사항이 있습니다.
향상된 솔루션
더 나은 접근 방식은 나머지를 계산하는 모듈러스 연산자. 나머지가 0이 아닌 경우 나머지와 배수의 차이를 원래 숫자에 더하여 반올림합니다.
int roundUp(int numToRound, int multiple) { if (multiple == 0) { return numToRound; } int remainder = numToRound % multiple; if (remainder == 0) { return numToRound; } return numToRound + multiple - remainder; }
음수의 경우
음수에 대한 "up"의 해석에 따라 함수의 음수 버전이 될 수 있습니다. 필요합니다.
int roundUp(int numToRound, int multiple) { if (multiple == 0) { return numToRound; } int remainder = abs(numToRound) % multiple; if (remainder == 0) { return numToRound; } if (numToRound < 0) { return -(abs(numToRound) - remainder); } else { return numToRound + multiple - remainder; } }
이 구현은 입력의 부호를 고려하여 양수와 음수를 모두 올바르게 처리합니다. 또한 정수 연산을 사용하므로 효율적이고 정확합니다.
위 내용은 C에서 가장 가까운 배수로 효율적으로 반올림하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!