Leetcode -- Divide Two Integers

来源:互联网 发布:angular ui router.js 编辑:程序博客网 时间:2024/05/17 06:56

Divide two integers without using multiplication, division and mod operator.

If it is overflow, return MAX_INT.

class Solution {public:    long long divide_(long long a,long long b)    {        int flag = 1;    long long x=1;    if(a<0) {a=-a;flag=-flag;}    if(b<0) {b=-b;flag=-flag;}    if(a==0) return 0;    if(a==b) return flag;    if(a<b) return 0;    long long c=b;    while(b<=a)    {    b<<=1;    x<<=1;    }    b>>=1;    x>>=1;    long long res = x+divide_(a-b,c);    if(flag==-1) return -res;    return res;    }    int divide(int dividend, int divisor) {        long long res = divide_(dividend,divisor);        if(res>INT_MAX) return INT_MAX;        return res;    }};


0 0
原创粉丝点击