可以使用位操作实现:
第一步:若将两个二进制数加一起,但忘记进位,只要a和b的第i位相同,总和的第i位就是0,相当于异或操作;
第二部:若将两个数加在一起,但只进位,只要a和b的i-1位皆为1,总和的第i位就为1,实质上是and加上移位操作;
第三步:递归执行前两步,直到没有进位为止;
public static int add(int a,int b){
if(b==0)return a;
int sum=a^b;
int carry=(a&b)<<1;
return add(sum,carry);
}//不用“+”号实现两个数的相加