牛客网 不用加减乘除做加法

题目:

写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。

解答:

看到题目,最直接的想法应该是按照二进制的计算,然而看到好多人提交的是用sum()函数。

二进制计算方法,参考:Python 解决面试题47 不用加减乘除做加法

# -*- coding:utf-8 -*-
class Solution:
    def Add(self, num1, num2):
        # write code here
        carry = 1
        while carry:
            s = num1 ^ num2
            carry = 0xFFFFFFFF & ((num1 & num2) << 1)
            carry = -(~(carry - 1) & 0xFFFFFFFF) if carry > 0x7FFFFFFF else carry
            num1 = s
            num2 = carry
        return num1

猜你喜欢

转载自blog.csdn.net/sxllllwd/article/details/81508516