您的位置:首页 > 其它

leetcode_Divide Two Integers

2015-05-15 13:41 246 查看
描述:

Divide two integers without using multiplication, division and mod operator.

If it is overflow, return MAX_INT.
思路:

用减法

代码:

public class Solution {
int count=0;
long dividendTemp=0,divisorTemp=0;
public int divide(int dividend, int divisor) {
if(divisor==0)
return 0;
if(dividend==Integer.MIN_VALUE&&divisor==-1)
return Integer.MAX_VALUE;
int countFlag=0;
long dividend1=dividend;
long divisor1=divisor;
if(dividend1<0)
{
countFlag++;
dividend1=-dividend1;
}
if(divisor1<0)
{
countFlag++;
divisor1=-divisor1;
}
dividendTemp=dividend1;
divisorTemp=divisor1;
while(dividend1>=divisor1+divisor1)
{
dividend1=getDivid(dividend1);
}
if(dividend1>=divisor1)
count++;
if(countFlag==1)
return -count;
return count;
}
public long getDivid(long dividend)
{
int temp=1;
while(dividend>=(divisorTemp<<temp))
temp++;
temp--;
dividend-=(divisorTemp<<temp);
count+=1<<temp;
return dividend;
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: