problem 3: given two integers N and M. The problem is to find the number closest to N and divisible by M. If there are more than one such number, then output the one having maximum absolute value.
Given non-zero two integers N and M. The problem is to find the number closest to N and divisible by M. If there are more than one such number, then output the one having maximum absolute value.
Example 1:
Input: N = 13 , M = 4 Output: 12 Explanation: 12 is the Closest Number to 13 which is divisible by 4.
Example 2:
Input: N = -15 , M = 6 Output: -18 Explanation: -12 and -18 are both similarly close to -15 and divisible by 6. but -18 has the maximum absolute value. So, Output is -18
ANSWER:
int closestNumber(int n , int m) {
int q = n / m;
int n1 = m * q;
int n2 = (n * m) > 0 ? (m * (q + 1)) : (m * (q - 1));
if (abs(n - n1) < abs(n - n2))
return n1;
return n2;
}
Comments
Post a Comment