class Solution {
public:
int divide(int dividend, int divisor) {
bool sign=(dividend<0&&divisor>0)||(dividend>0&&divisor<0);
long long a=abs((double)dividend);
long long b=abs((double)divisor);
long long ret=0;
while(a>=b)
{
long long c=b;
for(int i=0;a>=c;i++,c<<=1)
{
a-=c;
ret+=1<<i;
}
}
if(sign) return -ret;
else return ret;
}
};
public:
int divide(int dividend, int divisor) {
bool sign=(dividend<0&&divisor>0)||(dividend>0&&divisor<0);
long long a=abs((double)dividend);
long long b=abs((double)divisor);
long long ret=0;
while(a>=b)
{
long long c=b;
for(int i=0;a>=c;i++,c<<=1)
{
a-=c;
ret+=1<<i;
}
}
if(sign) return -ret;
else return ret;
}
};