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

xiaoxiao2021-02-28  36

题目描述

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

解题思路

第一步:两个数按位取亦或。获得的值为不考虑进位时的和。 第二步:两个数按位取与。获得的值为(当两个数某一位同为1时)两个数求和时需要进位的位置。每次讲该数(在代码中表示为num2)左移一位,表示进位后。 循环第一二步,直至两数的和没有进位位为止。

class Solution: def Add(self, num1, num2): while num2: mainPart = num1^num2 num2 = (num1&num2)<<1 num1 = mainPart return num1
转载请注明原文地址: https://www.6miu.com/read-2619232.html

最新回复(0)