Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Solution {
- public:
- int divide(int dividend, int divisor) {
- if (!divisor)
- return INT_MAX;
- int sign = ((dividend < 0 && divisor < 0 )|| (dividend > 0 && divisor > 0 )) ? 1 : -1;
- int quotient = 0;
- if (divisor == INT_MIN && dividend == INT_MIN)
- return 1;
- if (divisor == INT_MIN)
- return 0;
- if (dividend == INT_MIN && divisor == -1) return INT_MAX;
- if (dividend == INT_MIN && divisor == 1) return INT_MIN;
- if (dividend == INT_MIN && divisor > 0) {
- dividend += divisor;
- quotient++;
- } else if (dividend == INT_MIN && divisor < 0) {
- dividend -= divisor;
- quotient++;
- }
- dividend = abs(dividend);
- divisor = abs(divisor);
- while (dividend >= divisor) {
- dividend -= divisor;
- ++quotient;
- }
- return sign == -1 ? -quotient : quotient;
- }
- };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement