首页 > 代码库 > Divide Two Integers
Divide Two Integers
用减法可能会超时,但可以用二分
class Solution {
public:
int divide(int d1, int d2) {// d1/d2
if(d1==0)
return 0;
if(d2==1)
return d1;
if(d2==-1)
return -d1;
bool flag=true;
long long ld1=d1;
long long ld2=d2;
if(ld1<0)
{
flag = !flag;
ld1 = -ld1;
}
if(ld2<0)
{
flag = !flag;
ld2 = -ld2;
}
int count = 0;
while(ld1>=ld2)
{
long long temp=ld2;
int k=1;
while(temp+temp<=ld1)
{
k <<=1;
temp = temp+temp;
}
count |= k;
ld1 -= temp;
}
if(!flag)
count = -count;
return count;
}
};