leetcode ——29——Divide Two Integers

来源:互联网 发布:2016批量注册淘宝小号 编辑:程序博客网 时间:2024/04/29 19:15
Divide two integers without using multiplication, division and mod operator.

If it is overflow, return MAX_INT.


class Solution {public:     int divide(int dividend, int divisor)    {        int sign = (dividend < 0) ^ (divisor < 0) ? - 1 : 1;         long long res = 0, m = abs((long long)dividend), n = abs((long long)divisor);         while(m >= n)         {             long long t = n, i = 1;             while(t << 1 < m)             {                 t <<= 1;                 i <<= 1;             }             m -= t;             res += i;         }         if(sign < 0)             res = -res;         return res > INT_MAX ? INT_MAX : res;    }};

0 0
原创粉丝点击