대부분 math 라이브러리에 ceil() , floor(), round()함수는 구현되어 있지만
알고리즘 코딩에서 시간을 더욱 단축시키기 위한 공식들이 있었다.
다음은 기초적인 올림, 반올림, 버림을 처리하는 공식들이다
int a를 int b로 나눌때 값의 올림은 (a+b-1 )/ b로 하면 된다.
두 값의 부호에 따라 갈라짐
//양양 음음일때
if ((a >= 0 && b > 0) || (a < 0 && b < 0))
return (a + b - 1) / b;
else
return a / b;
int a를 int b로 나눌 때 값의 반올림 공식은 (a+ b/2 ) / b로 처리하면 된다.
부호 반대로 처리하면된다
//양양 음음일 때
if ((a >= 0 && b > 0) || (a < 0 && b < 0))
return (a + abs(b) / 2) / b;
else
return (a - abs(b) / 2) / b;
대부분 코드에서 a와 b가 int일때 /연산은 내림 처리한다.
int result = a / b;
if (a % b != 0 && ((a < 0) != (b < 0))) {
result--;
}
이렇게 처리해야한다.