算法1
思路:两数之和:与门 +或门
C++ 代码
class Solution {
public:
int add(int num1, int num2){
while(num2)
{
int sum=num1^num2;//异或:在本位相同,相加为0,不同为1
int carry=(num1 &num2)<<1;//num1与num2与之后,得到1进位,得到0,不用进位
num1=sum;
num2=carry;//两个数的和=本位求和+进位
}
return num1;
}
};