个人主页:Lei宝啊
愿所有美好如期而遇
本题链接
力扣(LeetCode)
输入描述
输入两个要相加的数,a和b
输出描述
返回a和b的和,这里其实直接return a+b; 直接就过了,但是人题目要求还是给点面子~
算法分析
不许使用加法和减法,一般就是使用位运算了,而我们也知道异或又可以理解成二进制数无进位相加,我们再去找到进位,两者相加,不许使用加法,则重复该过程,直到进位为0,我们看图:
解题源码
class Solution {
public:
int getSum(int a, int b)
{
while(b)
{
int temp = a ^ b;
b = (a & b) << 1;
a = temp;
}
return a;
}
};