leetcode 18: Divide Two Integers
Divide two integers without using multiplication, division and mod operator.
public class Solution {
public int divide(int divid, int divis) {
// Start typing your Java solution below
// DO NOT write main() function
long dividend = divid;
long divisor = divis;
boolean sign = false;
if(dividend<0) {
sign = true;
dividend = -dividend;
}
if(divisor<0) {
sign = !sign;
divisor = -divisor;
}
int res = 0;
long temp = 0;
while( dividend >= divisor) {
int i=1;
temp = divisor;
while( (temp<<1) <= dividend){
temp <<= 1;
i <<= 1;
}
res |= i;
dividend -= temp;
}
return sign ? -res : res;
}
}
浙公网安备 33010602011771号