[Leetcode][python]Divide Two Integers

题目大意

除法运算,但是不能用编程语言提供的乘法、除法和取模运算,即只能用加法和减法实现。

解题思路

https://blog.csdn.net/qian2729/article/details/50528758

代码

class Solution(object):
    def divide(self, dividend, divisor):
        """
        :type dividend: int
        :type divisor: int
        :rtype: int
        """
        MAX_INT = 2147483647
        sign = 1 if (dividend > 0 and divisor > 0) or (dividend < 0 and divisor < 0) else -1
        quotient = 0
        dividend = abs(dividend)
        divisor = abs(divisor)
        while dividend >= divisor:
            k = 0
            tmp = divisor
            while dividend >= tmp:
                dividend -= tmp
                quotient += 1 << k
                tmp <<= 1
                k += 1
        quotient  = sign * quotient
        if quotient > MAX_INT:
            quotient = MAX_INT
        return quotient

总结

猜你喜欢

转载自blog.csdn.net/qqxx6661/article/details/79723357