leetcode - Divide Two Integers
来源:互联网 发布:孤岛惊魂4优化太垃圾 编辑:程序博客网 时间:2024/06/05 19:50
Divide two integers without using multiplication, division and mod operator.
//这题要求不要用“/”来直接计算两个数的相除的值,那么,可以利用减法和位运算来实现。//比如,将1右移,可以得到 2 4 8 16 32...直到找到一个比divisor小且最大数tmp,然后//剩下的就是利用divisor-tmp,然后再判断div是否小于这个数。如果,小于重复上面的步骤。否则,得到最后的结果.class Solution {public: int divide(int dividend, int divisor) {int pre = 1;if((long long)dividend * divisor < 0) pre = -1;long long tmp = 0;long long divid = abs((long long)dividend);long long div = abs((long long)divisor);int res = 0;while(div <= divid){tmp = div;int cnt = 1;while((tmp <<= 1) < divid){cnt <<= 1;}res += cnt;divid -= (tmp >>= 1);}#if 1std::cout << res * pre << std::endl;#endif // 1return res * pre; }};
0 0
- LeetCode: Divide Two Integers
- [LeetCode]Divide Two Integers
- LeetCode: Divide Two Integers
- [LeetCode] Divide Two Integers
- [Leetcode] Divide Two Integers
- LeetCode Divide Two Integers
- 【leetcode】Divide Two Integers
- [LeetCode]Divide Two Integers
- LeetCode-Divide Two Integers
- LeetCode: Divide Two Integers
- Divide Two Integers - leetcode
- Leetcode: Divide Two Integers
- LeetCode:Divide Two Integers
- leetcode Divide Two Integers
- LeetCode Divide Two Integers
- LeetCode | Divide Two Integers
- Leetcode: Divide Two Integers
- Divide Two Integers -- LeetCode
- 线程池实例:使用Executors和ThreadPoolExecutor
- 程序员读书雷达
- 积累——非IT(一)
- (华为)求最大公共字符串长度,大小写部分
- Java构造和解析Json数据的两种方法详解一
- leetcode - Divide Two Integers
- 代理后获取客户端IP地址
- 基于Freemarker模板技术的邮件发送模块设计
- 对imp中的fromuser参数的偏差理解
- git 命令 以及 搭建多人开发环境
- java
- a star算法+list,减少遍历的开销
- 发现一个比SOAP,RPC等更爽的工具hessian 及在PHP中的使用介绍
- Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’解决方法