Divide two integers without using multiplication, division and mod operator.
Solution:
Code:
<span style="font-size:14px;">class Solution {
public:
int divide(int dividend, int divisor) {
long long dd = abs((double)dividend);
long long dr = abs((double)divisor);
int result = 0;
while (dd >= dr) {
long long temp = dr;
for (int i = 0; dd >= temp<<i; ++i) {
dd -= temp<<i;
result += 1<<i;
}
}
if ((dividend > 0 && divisor > 0) || (dividend < 0 && divisor < 0)) return result;
else return -result;
}
};</span>