Amazon Interview Question
Software Engineer / DevelopersCountry: United States
Interview Type: Phone Interview
static int div(int tempdividend, int tempdivisor){
if(tempdividend == tempdivisor) return 1;
if(tempdividend < tempdivisor) return 0;
int lo = 2;
int hi = tempdividend;
while(lo <= hi){
int mid = (lo + hi)/2;
if(mid * tempdivisor <= tempdividend && ( mid+1 )* tempdivisor >tempdividend)
return mid;
if(mid * tempdivisor > tempdividend)
hi = mid-1;
else if(mid * tempdivisor < tempdividend)
lo = mid+1;
}
return -1;
}
int givequotient (int dividend, int divisor)
{
int i = 0;
while (dividend > divisor)
{
dividend -= divisor;
i++;
}
return i;
}
subtracting is not very efficient if the divisor much smaller than the dividend
you can adapt the binary search for this problem,e.g:
- pavel.em October 22, 2011