
详细思路
对于被除数,找到最大的除数倍数不超过被除数,此时最大倍数作为和的一部分,获得新的被除数,如果被除数最大倍数不到1return0
详细思路
ans1已经找到的最大倍数
class Solution { public: int divide(int dividend, int divisor) { if(dividend==INT_MIN&&divisor==-1)return INT_MAX; long a=dividend,b=divisor; bool isNegative=false; if(a<0&&b>0)isNegative=true; if(a>0&&b<0)isNegative=true; a=a>0?a:-a; b=b>0?b:-b; return isNegative?-getAns(a,b):getAns(a,b); } long getAns(long dividend,long divisor){ if(dividend<divisor)return 0; long ans1=1; while(dividend>=divisor*(ans1+ans1)){ ans1=ans1+ans1; } return ans1+getAns(dividend-ans1*divisor,divisor); } };
浙公网安备 33010602011771号