文章作者:Tyan
博客:noahsnail.com | CSDN | 简书
1. Description
2. Solution
class Solution {
public:
int divide(int dividend, int divisor) {
if(dividend == INT_MIN && divisor == -1) {
return INT_MAX;
}
int sign = (dividend > 0) ^ (divisor > 0)?-1:1;
long x = labs(dividend);
long y = labs(divisor);
int result = 0;
int power= 1;
while(x >= y) {
long temp = y;
power = 1;
while(x >= (temp << 1)) {
temp <<= 1;
power <<= 1;
}
x -= temp;
result += power;
}
return sign>0?result:-result;
}
};