Leetcode 29. Divide Two Integers

文章作者:Tyan
博客:noahsnail.com  |  CSDN  |  简书

1. Description

Divide Two Integers

2. Solution

class Solution {
public:
    int divide(int dividend, int divisor) {
        if(dividend == INT_MIN && divisor == -1) {
            return INT_MAX;
        }
        int sign = (dividend > 0) ^ (divisor > 0)?-1:1;
        long x = labs(dividend);
        long y = labs(divisor);
        int result = 0;
        int power= 1;
        while(x >= y) {
            long temp = y;
            power = 1;
            while(x >= (temp << 1)) {
                temp <<= 1;
                power <<= 1;
            }
            x -= temp;
            result += power;
        }
        return sign>0?result:-result;
    }
};

Reference

  1. https://leetcode.com/problems/divide-two-integers/description/
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容