给出两个整数a和b, 求他们的和, 但不能使用 +
等数学运算符。
注意事项
你不需要从输入流读入数据,只需要根据aplusb
的两个参数a和b,计算他们的和并返回就行。
说明
a和b都是 32位
整数么?
- 是的
我可以使用位运算符么?
- 当然可以
样例
如果 a=1
并且 b=2
,返回3
方法一
int aplusb(int a, int b)
{
// write your code here
while(0 != b)
{
int num1 = a^b;
int num2 = (a&b) << 1;
a = num1;
b = num2;
}
return a;
}
方法二 int aplusb(int a, int b)
{
// write your code here
if(0 == b)
{
return a;
}
int num1 = a^b;
int num2 = (a&b) << 1;
return aplusb(num1,num2);
}