Leetcode 29. Divide Two Integers
2018-01-31 08:49
471 查看
原题:
Divide two integers without using multiplication, division and mod operator.
If it is overflow, return MAX_INT.
解决方法:
除法的实现,关键在于大循环中的小循环,通过往左移1位倍增被除数来加快速度。
代码:
Divide two integers without using multiplication, division and mod operator.
If it is overflow, return MAX_INT.
解决方法:
除法的实现,关键在于大循环中的小循环,通过往左移1位倍增被除数来加快速度。
代码:
int divide(int dividend, int divisor) { if (!divisor || (dividend==INT_MIN && divisor==-1)) return INT_MAX; int flag = ((dividend < 0) ^ (divisor < 0)) ? -1 : 1; long dvd = labs(dividend); long dvs = labs(divisor); int res = 0; while(dvd >= dvs){ long temp = dvs; int multiple = 1; while(dvd>=(temp <<1)){ temp <<= 1; multiple <<= 1; } res += multiple; dvd -= temp; } return res * flag; }
相关文章推荐
- [LeetCode]29.Divide Two Integers
- leetcode 29. Divide Two Integers
- leetcode 29. Divide Two Integers
- leetcode题解-29. Divide Two Integers
- 【C++】【LeetCode】29. Divide Two Integers
- Leetcode29 Divide Two Integers
- [LeetCode-29] Divide Two Integers(两个整数相除,不能使用乘除取余算术符)
- leetcode 29: Divide Two Integers
- python写算法题:leetcode: 29. Divide Two Integers
- Leetcode 29. Divide Two Integers
- [LeetCode]29. Divide Two Integers
- LeetCode - 29. Divide Two Integers
- 29 leetcode - Divide Two Integers
- Leetcode||29. Divide Two Integers
- leetcode 29. Divide Two Integers
- leetcode 29. Divide Two Integers
- LeetCode 29 Divide Two Integers(两个整数相除)(*)
- leetCode 29.Divide Two Integers (两整数相除) 解题思路和方法
- LeetCode (29)Divide Two Integers
- Leetcode 29. Divide Two Integers (Medium) (cpp)