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.

 

Closest Number


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

Popular posts from this blog

problem no 7:Given two numbers A and B, find Kth digit from right of AB.

Problem no 16: count the number of squares below N.