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; }
时间: 2025-01-04 13:31:55