Question:
Implement Integer division without using / or %.
// A binary question
// return a / b.
public int divide(int a, int b)
{
if (b == 0)
return Integer.MAX_VALUE;
if (a == 0)
return 0;
boolean neg = (a < 0 && b > 0) || (a > 0 && b < 0);
a = Math.abs(a);
b = Math.abs(b);
long low = 1L;
long high = a;
while (low < high)
{
long mid = low + ((high - low) >> 1);
long r = mid * b;
if (r == a)
return neg ? -mid : mid;
else if (r > a)
high = mid - 1;
else
low = mid + 1;
}
return neg ? -low : low;
}[Twitter] Divide Without / Or %
原文:http://7371901.blog.51cto.com/7361901/1604612