0%

不用加减乘除做加法

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

按位加,相异为1,相同且为1则进位,直至无进位

1
2
3
4
5
6
7
8
9
10
11
12
13
14
class Solution {
public:
int Add(int num1, int num2)
{
while (num2 != 0)
{
const int base = num1 ^ num2;
const int next = (num1 & num2) << 1;
num2 = next;
num1 = base;
}
return num1;
}
};