写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
看到题目,最直接的想法应该是按照二进制的计算,然而看到好多人提交的是用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