#include <cmath>
class Solution {
public:
int divide(int dividend, int divisor) {
if(dividend==0)
return 0;
long divid=dividend,divis=divisor;
long result=divideLong(abs(divid),abs(divis));
result=divid*divis<0?-result:result;
if(result>INT_MAX || result<INT_MIN) return INT_MAX;
return (int)result;
}
long divideLong(long dividend,long divisor)
{
if(dividend<divisor)
return 0;
long sum=divisor,divideTimes=1;
while(sum+sum<=dividend)
{
sum+=sum;
divideTimes+=divideTimes;
}
return divideTimes+divideLong(dividend-sum,divisor);
}
};
LeetCode--29. Divide Two Integers
最新推荐文章于 2020-06-12 21:55:45 发布