题目描述
请编写一个函数,将两个数字相加。不得使用+或其他算数运算符。
给定两个int A和B。请返回A+B的值
测试样例:
1,2
返回:3
#include <iostream>
using namespace std;
class UnusualAdd {
public:
int addAB(int A, int B)
{
int sum = 0;
int carry = 0;
while (B != 0)
{
//求对应位的和
sum = A^B;
//求对应位的进位,因为是进位,所以整体左移一位
carry = (A&B) << 1;
A = sum;
B = carry;
}
return sum;
}
};
int main()
{
int A = 1;
int B = 2;
UnusualAdd ADD;
int add = ADD.addAB(A, B);
cout << add << endl;
system("pause");
return 0;
}