各种特判
class Solution {
public:
int divide(int dividend, int divisor) {
if(dividend == INT_MIN && divisor == -1) return INT_MAX;
int flag = (dividend < 0) ^ (divisor < 0) ? 0 : 1;
long long m = abs((long long)dividend);
long long n = abs((long long)divisor);
long long ans = 0;
if(n == 1) return flag? m : -m;
while(m >= n) {
long long t = n, p = 1;
while(m >= (t << 1)){
p <<= 1;
t <<= 1;
}
ans += p;
m -= t;
}
return flag? ans : -ans;
}
};
题目链接:https://leetcode-cn.com/problems/divide-two-integers/