【剑指offer】不用加减乘除做加法(Python)

题目描述

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

思路

这里解释了为什么要加入return num1 if num1<=0x7FFFFFFF else ~(num1^0xFFFFFFFF)的判断:

https://blog.csdn.net/u012505432/article/details/51902155

# -*- coding:utf-8 -*-
class Solution:
    def Add(self, num1, num2):
        # write code here
        n1 = (num1 ^ num2) & 0xFFFFFFFF
        n2 = ((num1 & num2) << 1) & 0xFFFFFFFF
        n3 = n1 ^ n2
        if n2 == 0:
            return n3 if n3 <= 0x7fffffff else ~(n3^0xFFFFFFFF)
        else:
            return self.Add(n1,n2)

猜你喜欢

转载自blog.csdn.net/yingzoe/article/details/88828527