1. 程式人生 > >LeetCode第29題 Divide Two Integers(兩數相除)

LeetCode第29題 Divide Two Integers(兩數相除)

class Solution { public:     int divide(int dividend, int divisor) {         if(!divisor || (dividend == INT_MIN && divisor == -1))return INT_MAX;         int flag = ((dividend < 1) ^ (divisor < 0)) ? -1 : 1;         long long divd = labs(dividend);         long long divs = labs(divisor);         int ans = 0;         while(divd >= divs){             long long temp = divs, mul = 1;             while(divd >= (temp<<1)){                 temp <<= 1;                 mul <<= 1;             }             ans += mul;             divd -=temp;         }         return flag == 1 ? ans : -ans;     } };