Steward
分享是一種喜悅、更是一種幸福
程式語言 - LeetCode - C++ - 29. Divide Two Integers
參考資訊:
https://algo.monster/liteproblems/29
https://www.cnblogs.com/grandyang/p/4431949.html
題目:

解答:
class Solution {
public:
int divide(int dividend, int divisor) {
long m = dividend;
long n = divisor;
bool sign = ((dividend < 0) ^ (divisor < 0)) ? false : true;
if (n == 1) {
return m;
}
if ((m == INT_MIN) && (n == -1)) {
return INT_MAX;
}
m = labs(dividend);
n = labs(divisor);
long r = 0;
while (m >= n) {
long t = n;
long p = 1;
while (m >= (t << 1)) {
t <<= 1;
p <<= 1;
}
r += p;
m -= t;
}
return sign ? r : -r;
}
};