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;
}
}
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;
}
}
相关文章推荐
- Divide Two Integers
- Divide Two Integers 不使用乘除取余求除法
- Divide Two Integers
- Divide Two Integers
- Divide Two Integers
- Divide Two Integers (只用加减法做除法,logn复杂度) 【leetcode】
- Divide Two Integers ——解题报告
- Divide Two Integers_Leetcode_#29
- Divide Two Integers
- Divide Two Integers--LeetCode
- Divide Two Integers - LeetCode
- Divide Two Integers 解答
- Divide Two Integers leetcode
- Divide Two Integers我的解法
- Divide Two Integers
- Divide Two Integers
- Divide Two Integers
- Divide Two Integers
- Divide Two Integers
- Divide Two Integers