Divide Two Integers
来源:互联网 发布:阿里云学生认证资料 编辑:程序博客网 时间:2024/06/06 03:32
Divide two integers without using multiplication, division and mod operator.
If it is overflow, return MAX_INT.
Tag: 二分求解,相当于每次除数都乘以2,注意考虑负数的情况和整数溢出的情况。
int divide(int dividend, int divisor){const int MAX_INT = (unsigned)(-1)>>1;const int MIN_INT = (unsigned)(~MAX_INT);if(dividend == divisor) return 1;if(divisor == 0 || (dividend == MIN_INT && divisor == -1)) return MAX_INT;if(divisor == MIN_INT) return 0;if(divisor == 1) return dividend;if(divisor == -1) return -dividend;bool negtive = (dividend < 0) ^ (divisor < 0);long _dividend, _divisor;if(dividend < 0){if(dividend == MIN_INT)_dividend = (long) MAX_INT + 1l;else_dividend = -dividend;}else{_dividend = dividend;}_divisor = (divisor < 0) ? -divisor : divisor;int result = 0;while(_divisor <= _dividend){int ans = 1;long div_tmp = _divisor;while(_dividend >> 1 >= div_tmp){ans <<= 1;div_tmp <<= 1;}result += ans;_dividend -= div_tmp;}return (negtive) ? -result : result;}
0 0
- 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
- [LeetCode]Divide Two Integers
- Divide Two Integers
- LeetCode-Divide Two Integers
- Divide Two Integers
- 25 - Divide Two Integers
- JavaWeb项目的大概分层
- 解题报告 之 POJ1459 Power Network
- git 常用命令(含删除文件)
- ZooKeeper入门
- Android差分包的制作
- Divide Two Integers
- 前台调试 js Console命令
- centos
- jqGrid 官方下载地址
- C#如何将用户控件添加到窗体中。
- 草料Chrome浏览器插件,让二维码更好用
- ERP是怎么发展起来的
- java序列化与反序列化总结
- Myeclipse10.6装好了Aptana插件之后,启动都会报弹出对话框报java.lang.NullPointerException错误