剑指offer 49 不用加减乘除做加法

来源:互联网 发布:java.util详解 编辑:程序博客网 时间:2024/05/24 03:53

题目描述

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

思路

首先按位异或,然后按位与,最后再异或,直到没有进位。

代码

# -*- coding:utf-8 -*-class Solution:    def Add(self, num1, num2):        # write code heres1        while num2 != 0:            res1 = num1 ^ num2            res2 = (num1 & num2) << 1            num1 = res1 & 0xFFFFFFFF            num2 = res2        return num1 if num1 >> 31 == 0 else num1 - 4294967296
原创粉丝点击