如题,不用乘除法和mod实现两数相除。

这里引用一位clever boy 的解法。

 1 class Solution {
 2 public:
 3     int divide(int dividend, int divisor) {
 4         long long res = 0;
 5         if(dividend == 0)
 6             return 0;
 7         if(divisor == 0)
 8             return INT_MAX;
 9         res = exp(log(llabs(dividend)) - log(llabs(divisor)));
10         if((dividend < 0) ^ (divisor < 0))
11             res = -res;
12         if(res > INT_MAX)
13             res = INT_MAX;
14         return res;
15     }
16 };

数学大法好!!!