LeetCode: Divide Two Integers
来源:互联网 发布:pdf电子杂志制作软件 编辑:程序博客网 时间:2024/06/07 01:20
Divide two integers without using multiplication, division and mod operator.
If it is overflow, return MAX_INT.
class Solution {public: int divide(int dividend, int divisor) { bool positive = true; if(dividend == 0) return 0; if((dividend > 0 && divisor > 0) || (dividend < 0 && divisor < 0)) positive = true; else positive = false; unsigned int dvd = std::abs(dividend); unsigned int dvs = std::abs(divisor);unsigned int dvs2 = dvs; int step = 0;unsigned int result = 0; while(dvd > dvs) { dvs = (dvs << 1); step++; }while(step >= 0){if(dvd >= dvs){dvd -= dvs;result += (1 << step);}dvs = dvs >> 1;step--;}if(result > INT_MAX && positive)result = INT_MAX; if(positive) return result; else return 0 - result; }};
Round 2:
class Solution {public: int divide(int dividend, int divisor) { long a = dividend; long b = divisor; long result = 0; int symbol = 0; if((a > 0 && b > 0) || (a < 0 && b < 0)) symbol = 1; a = std::abs(a); b = std::abs(b); long remain = a; while(remain >= b) { long tempB = b; long cur = 1; while((tempB << 1) < remain) { tempB = tempB << 1; cur = cur << 1; } remain = remain - tempB; result += cur; } result = symbol > 0 ? result : 0-result; if(result > INT_MAX || result < INT_MIN) return INT_MAX; return result; }};
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
- 【ZooKeeper Notes 3】ZooKeeper Java API 使用样例
- 让Source Insight完美支持中文注释
- 二分查找
- ZooKeeper系列文章汇总
- 【ZooKeeper Notes 2】ZooKeeper快速搭建
- LeetCode: Divide Two Integers
- JS删除数组元素的函数介绍
- 【ZooKeeper Notes 29】 修复“ZooKeeper客户端打印当前连接的服务器地址为null”的Bug问题描述
- 责任链(Chain of Responsibility)
- 【ZooKeeper Notes 30】配置管理系统ZooKeeper与Diamond有什么不一样
- hello world
- BZOJ 1004 HNOI 2008 Cards Burnside引理
- uva202循环小数Repeating Decimals
- 【ZooKeeper Notes 10】ZooKeepr监控