Divide Two Integers

来源:互联网 发布:恐怖游轮 知乎 编辑:程序博客网 时间:2024/05/17 02:55

Divide two integers without using multiplication, division and mod operator.


public class Solution {  public int divide(int dividend, int divisor) {    int sign = 1;    if (dividend < 0) {      sign *= -1;    }    if (divisor < 0) {      sign *= -1;    }    long big = Math.abs((long) dividend);    long small = Math.abs((long) divisor);    long temp = small;    long midres = 1;    while (temp < big) {      temp <<= 1;      midres <<= 1;    }    int ret = 0;    while (temp >= small) {      while (big >= temp) {        big -= temp;        ret += midres;      }      temp >>= 1;      midres >>= 1;    }    return ret * sign;  }}


0 0
原创粉丝点击