Divide Two Integers(improve)

本文介绍了一种不使用乘法、除法和取模运算符实现整数相除的方法。利用位移技巧来高效地计算商,对于正数和负数的情况进行了讨论,并给出了一段示例代码。
Divide two integers without using multiplication, division and mod operator.

Same here, I would definitely do it in a nasty way. This shift thing really helps! Nice code!

class Solution:
    # @return an integer
    def divide(self, dividend, divisor):
        
        if (dividend > 0 and divisor > 0) or (dividend < 0 and divisor < 0):
            sign = 1
        else:
            sign = -1
        
        dividend = abs(dividend)
        divisor = abs(divisor)
        quotient = 0
        
        while dividend >= divisor:
            
            cnt = 0
            temp_divisor = divisor
            
            while dividend >= temp_divisor:
                
                quotient += (1 << cnt)
                
                dividend -= temp_divisor
                
                temp_divisor <<= 1
                
                cnt += 1
                
        return quotient * sign
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值