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;
}
}
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;
}
}
相关文章推荐
- [LeetCode] Divide Two Integers
- LeetCode的一个题目 Divide Two Integers
- LeetCode(29) Divide Two Integers
- LeetCode 29 Divide Two Integers
- LeetCode 124 Divide Two Integers
- leetcode Divide Two Integers
- LeetCode题解:Divide Two Integers
- [Leetcode] 29. Divide Two Integers 解题报告
- leetcode 29. Divide Two Integers
- 51_leetcode_Divide Two Integers
- LeetCode 28. Divide Two Integers
- Leetcode Divide Two Integers
- Leetcode: Divide Two Integers
- Leetcode--Divide Two Integers
- leetcode29_Divide Two Integers
- LeetCode-29-Divide Two Integers(Numbers)-Medium
- [leetcode: Python]29. Divide Two Integers
- [LeetCode] Add Two Numbers、Divide Two Integers、Multiply Strings、Add Binary、Plus One
- [leetcode]Divide Two Integers
- leetcode 29. Divide Two Integers