LeetCode第29题之Divide Two Integers
来源:互联网 发布:数据新闻比赛官网 编辑:程序博客网 时间:2024/05/20 19:15
C++代码:
#include <iostream>#include <limits>using namespace std;class Solution {public: int divide(int dividend, int divisor) { /*1. 将int转换成long long int可以省事,例如当被除数与 但long long int可以*/ /*2. -2147483648为最小的int,而最大的int为2147483647, 故需要先强制类型转换为double*/ long long int a = abs((double)dividend); long long int b = abs((double)divisor); long long int ret = 0; long long int c; while(a>=b) { /* 3. 注意这里c要申明为long long int,否则有可能移位之后 变为0,从而形成死循环*/ c = b; for (int i=0;a>=c;++i,c<<=1) { a -= c; ret += 1<<i; } } //将dividend和divisor抑或运算,最高位即表示为结果的符号位 ret = ( (dividend^divisor) >> 31 )? (-ret) : ret; return ( (ret > INT_MAX || ret < INT_MIN)? INT_MAX : ret ); }};int main(){ Solution s; int a = -2147483648; int b = -1; cout<<s.divide(a, b)<<endl; return 0;}
0 0
- LeetCode第29题之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-29-Divide Two Integers 智障题
- leetcode 29: Divide Two Integers
- LeetCode(29)Divide Two Integers
- [leetcode 29] Divide Two Integers
- [leetcode] 29 Divide Two Integers
- leetcode 29 Divide Two Integers
- Leetcode 29 Divide Two Integers
- LeetCode 29 - Divide Two Integers
- leetcode 29 -- Divide Two Integers
- Java中Properties类的使用
- Pandas DataFrame 日常的操作与发现
- wsdl
- yii2框架-yii2的操作action(十)
- TextView字体跑马效果
- LeetCode第29题之Divide Two Integers
- OPENGL ES 纹理
- android ROM设置默认Launcher(主屏幕应用)
- Wire Protocol Buffers介绍
- eclipse中tomcat启动不了问题
- Windows下 Python3.5 运行环境的搭建
- JAVA Calendar详解
- ViewDragHelper详解- 可拖动的view
- 1045 access denied for user ’root’@’localhost’ using password yes