描述
在不使用乘法运算符,除法运算符和取余运算符的情况下对两个数进行相除操作
示例1
输入:
-1,1
返回值:
-1
class Solution {
public:
int divide(int dividend, int divisor) {
long long a = abs((long long)dividend);
long long b = abs((long long)divisor);
int finalcount=0;
while(a >= b){
int count = 1;
long sum = b;
while(sum + sum <= a){
sum += sum;
count += count;
}
a -= sum;
finalcount += count;
};
return (dividend>>31 ^ divisor>>31)? -finalcount:finalcount;
}
};
使用一般的减法运算,很容易导致超时;
为了减少做减法的次数,是用成倍的加法操作可以。