【剑指Offer系列65】不用加减乘除做加法

tech2024-07-04  56

文章目录

题目代码PythonC++

题目

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

示例: 输入: a = 1, b = 1 输出: 2

提示: a, b 均可能是负数或 0 结果不会溢出 32 位整数

代码

Python
# 思路: # 采用位运算 # 复杂度: # O(1) class Solution: def add(self, a: int, b: int) -> int: c=0xffffffff a,b=a&c,b&c while b!=0: a,b=(a^b),(a&b)<<1&c return a if a<=0x7fffffff else ~(a^c)
C++
class Solution { public: int add(int a, int b) { while (b!=0) { int c=(unsigned int)(a&b)<<1; a^=b; b=c; } return a; } };
最新回复(0)