Divide Two Integers问题及解法
来源:互联网 发布:看门狗2柯比湾重要数据 编辑:程序博客网 时间:2024/06/05 02:00
问题描述:
Divide two integers without using multiplication, division and mod operator.
If it is overflow, return MAX_INT.
问题分析:首先把容易溢出的案列举出来:除数为零或者被除数等于INT_MIN,除数等于-1。
接下来,我们可以根据十进制数转换为二进制数的方法,逐层求得结果。
过程详见代码:
class Solution {public: int divide(int dividend, int divisor) { if (!divisor || (dividend == INT_MIN && divisor == -1)) return INT_MAX; long long res = 0; int sign = (dividend < 0 && divisor < 0) || (dividend > 0 && divisor > 0); long long dividend1 = abs((long long)dividend); long long divisor1 = abs((long long)divisor); while(divisor1 <= dividend1) { long long temp = divisor1, multiple = 1; while (dividend1 >= (temp << 1)) { temp <<= 1; multiple <<= 1; } res += multiple; dividend1 -= temp;}return sign == 1 ? res : -res; }};
阅读全文
0 0
- Divide Two Integers问题及解法
- Sum of Two Integers问题及解法
- leetcode:Divide Two Integers菜鸟解法
- Divide Two Integers我的解法
- Divide Two Integers 的两种解法
- LeetCode: Divide Two Integers
- [LeetCode]Divide Two Integers
- LeetCode: Divide Two Integers
- [LeetCode] Divide Two Integers
- Divide Two Integers
- Divide Two Integers
- LeetCode28:Divide Two Integers
- [Leetcode] Divide Two Integers
- LeetCode Divide Two Integers
- Divide Two Integers
- 【leetcode】Divide Two Integers
- Divide Two Integers
- Divide Two Integers
- 那些开源的php Office,快捷得在线编辑预览文档
- Android 获取手机的手机号
- BroadcastReceiver广播接听器的初步认识,本地广播的发送与接收(2)
- 581. Shortest Unsorted Continuous Subarray
- python numpy中nonzero()的用法
- Divide Two Integers问题及解法
- JAVA中,Map转实体类、实体类转Map的方法
- 四基:知识,技能,思想,活动经验
- 安卓游戏中的精品~你玩过吗?
- [049]C++代码规范
- 解析提高PHP执行效率的50个技巧
- 如何安装svn
- EOS技术点
- pagination控件分页