Advertisement
Guest User

Untitled

a guest
Feb 17th, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.02 KB | None | 0 0
  1. class Solution {
  2. public:
  3.     int divide(int dividend, int divisor) {
  4.         if (!divisor)
  5.             return INT_MAX;
  6.         int sign = ((dividend < 0 && divisor < 0 )|| (dividend > 0 && divisor > 0 )) ? 1 : -1;
  7.         int quotient = 0;
  8.         if (divisor == INT_MIN && dividend == INT_MIN)
  9.             return 1;
  10.         if (divisor == INT_MIN)
  11.             return 0;
  12.        
  13.         if (dividend == INT_MIN && divisor == -1) return INT_MAX;
  14.         if (dividend == INT_MIN && divisor == 1) return INT_MIN;
  15.        
  16.        
  17.         if (dividend == INT_MIN && divisor > 0) {
  18.             dividend += divisor;
  19.             quotient++;
  20.         } else if (dividend == INT_MIN && divisor < 0) {
  21.             dividend -= divisor;
  22.             quotient++;
  23.         }
  24.  
  25.        
  26.         dividend = abs(dividend);
  27.         divisor = abs(divisor);
  28.        
  29.         while (dividend >= divisor) {
  30.             dividend -= divisor;
  31.             ++quotient;
  32.         }
  33.         return sign == -1 ? -quotient : quotient;
  34.     }
  35. };
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement