题解 | #不用加减乘除做加法#
不用加减乘除做加法
https://www.nowcoder.com/practice/59ac416b4b944300b617d4f7f111b215
接上题解,补充递归写法
class Solution: def Add(self, num1: int, num2: int) -> int: # 本题最大正值2000 =0x7D0。 # 取12位足够了,来截断更高位。 board = 0xFFF num1, num2 = num1 & board, num2 & board if num2 == 0: return num1 if num1 <= 0x7D0 else ~(num1 ^ board) return self.Add((num1 ^ num2), (num1 & num2) << 1)