publicint(int dividend, int divisor){ if (divisor == 1) return dividend; if (dividend == Integer.MIN_VALUE && divisor == -1) return Integer.MAX_VALUE; int sign = (dividend > 0 ^ divisor > 0) ? -1 : 1; long ans = 0; long begin = Math.abs((long)divisor); long end = Math.abs((long)dividend); while (begin <= end) { long temp = begin; long num = 1; while ((temp << 1) < end) { temp <<= 1; num <<= 1; } ans += num; end -= temp; } return (int)(sign * ans); }
近期评论