Manipulation Divide Two Integers
来源:互联网 发布:江西seo 编辑:程序博客网 时间:2024/05/21 14:04
思路:
模拟法。
只能使用加减法、位运算来实现除法。
这里使用了位运算。
Example:
42/4
step1:4(1个4)—>8(2个4)—>16(4个4)—>32(8个4)—>64(16个4)
step2:42-32 = 10
10/4
4(1个4)—>8(2个4)—>16(4个4)
step3:10-8=2 < 4
ans = 8 + 2 = 10;
class Solution {private: //Divide Two Integers long long divideL(unsigned long long dividend, unsigned long long divisor) { unsigned long long tmp = divisor; long long sum = 0; unsigned long long lastTmp = 1; while(dividend >= divisor) { while(tmp <= dividend) { tmp = tmp << 1; lastTmp = (tmp > dividend) ? lastTmp : lastTmp << 1; } sum += lastTmp; dividend = dividend - (tmp >> 1); tmp = divisor; lastTmp = 1; if(tmp == dividend) return sum+1; } return sum; }public: int divide(int dividend, int divisor) { unsigned long long dividendL = abs((long long)dividend); unsigned long long divisorL = abs((long long)divisor); int symbol = 1; if ((dividend >= 0 && divisor < 0) || (dividend <= 0 && divisor > 0)) { symbol = -1; } if(dividendL < divisorL) { return 0; } if(dividendL == divisorL) { return symbol; } if(divisorL == 1) { long long ans = symbol*dividendL; return ans > INT_MAX ? ans - 1 : ans; } int ans = divideL(dividendL, divisorL); return symbol*ans; }};
0 0
- Manipulation 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
- [LeetCode]Divide Two Integers
- Divide Two Integers
- LeetCode-Divide Two Integers
- Divide Two Integers
- 基督徒十一奉献是不是必须奉献教会?信徒可不可以拿自己要十一奉献钱去帮助别人呢?
- CSS3 Transform & Transition & Animation
- RichFaces 简介
- 【工作流前进之路】Activiti 权限之用户管理
- libspatialindex学习笔记之一
- Manipulation Divide Two Integers
- Android打包成jar文件方法总结
- android handler is abstrack ,cannot be instantiated
- 用Xamarin 开发一个微信(ios和android)(1) 架构篇
- Web.xml配置详解
- jQuery实现清空table表格除首行外的所有数据
- android eclipse 导入 android support 源码
- 实 验 集合的使用
- 【cocos2d-x 8】开发cocos2d-x,个人感觉最大的失误,是最初没有在mac下开发