模拟整数除法,不能用乘法,模,除法
class Solution { public: double exp[100]; int divide(int dividend,int divisor) { return divided(dividend,divisor); } private: int divided(double dividend, double divisor) { int flag = 1; if((dividend > 0 && divisor < 0) || (dividend < 0 && divisor > 0)) flag = -1; if(dividend < 0) { dividend = abs(dividend); } if(divisor < 0) { divisor = abs(divisor); } int i = 0; exp[i++] = divisor; while(exp[i-1] < dividend) { exp[i++] = exp[i-1] + exp[i-1]; } int ans = 0; i--; while(i >= 0) { if(dividend >= exp[i]) { ans += (int)pow(2.0,i); dividend -= exp[i]; } else { i--; } } if(flag == -1)return ~ans+1; else return ans; } };
XRumerTest 2019/10/06 08:33
Hello. And Bye.
XRumerTest 2020/05/25 09:08
Hello. And Bye.