您的位置:首页 > 编程语言 > Java开发

Divide Two Integers

2014-05-13 14:25 211 查看
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;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java pat