如题,不用乘除法和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 };
数学大法好!!!