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; } }