class Solution {
public:
int divide(int dividend, int divisor) {
long long a = abs((double)dividend);
long long b = abs((double)divisor);
long long res = 0;
int sign = ((dividend ^ divisor) >> 31) ? -1 : 1;
while(a >= b)
{
long long c = b;
for(int i = 0; a >= c; i++, c <<=1)
{
a -= c;
res += 1<<i;
}
}
res = sign * res;
return INT_MIN <= res && res <= INT_MAX ? res : INT_MAX;
}
};Leetcode: Divide Two Integers
最新推荐文章于 2019-06-21 09:25:43 发布
本文介绍了一种使用C++实现整数除法的方法,通过位移和循环实现了不使用除法运算符来计算两个整数相除的结果,并考虑了溢出和符号问题。

394

被折叠的 条评论
为什么被折叠?



