解题思路:使用位操作
class Solution {
public:
int divide(int dividend, int divisor) {
if(divisor == 1)
return dividend;
if(dividend == INT_MIN && abs(divisor) == 1)
return INT_MAX;
typedef long long ll;
ll ans = 0;
ll n =abs((ll)dividend);
ll d =abs((ll)divisor);
while(n>=d)
{
ll a = d;
ll m =1;
while((a<<1)<n){
a<<=1;
m<<=1;
}
ans+=m;
n-=a;
}
if((dividend<0&&divisor>0)||(dividend>=0&&divisor<0))
return -ans;
return ans;
}
};