29. 两数相除

 1 class Solution 
 2 {
 3 public:
 4      
 5     int divide(int dividend, int divisor) 
 6     {
 7         if(dividend == 0)  return 0;
 8 
 9         long long a = fabs(dividend);//fabs()函数——>对更大精度求绝对值
10         long long b = fabs(divisor);
11         
12         long long result = exp(log(a) - log(b));//  a/b = exp(log(a) - log(b)) 
13                                                 //  log()函数是以底数为e
14         
15         //判断是否异号——>   (dividend < 0) ^ (divisor < 0)
16         if ((dividend < 0) ^ (divisor < 0)) result = -result;
17         
18         if (result > INT_MAX) result = INT_MAX;
19         
20         return result;
21     }
22 };

 

posted @ 2020-03-16 17:18  Jinxiaobo0509  阅读(150)  评论(0)    收藏  举报