/*
* 题目
给出两个整数a和b, 求他们的和, 但不能使用+等数学运算符。
注意事项
你不需要从输入流读入数据,只需要根据aplusb的两个参数a和b,计算他们的和并返回就行。
说明
a和b都是32位整数么?
是的
我可以使用位运算符么?
当然可以
*/
package leetcode;
public class n4aplusb {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println(aplusb(2,2));
}
public static int aplusb(int a,int b){
if(a==0)return b;
if(b==0)return a;
int x1=a^b;//按位异或
int x2=(a&b)<<1;//按位与,左移动1位
return aplusb(x1,x2);
}
}