题目:另类加法
请编写一个函数,将两个数字相加。不得使用+或其他算数运算符。
给定两个int A 和 B 。请返回 A+B 的值。
测试样例:
1,2
返回:3
分析:
异或 运算结果与两数相加结果相同(不包含进位),与 运算结果和两数相加的进位相同,于是可以通过异或运算和位运算表示加法。
import java.util.*;
public class UnusualAdd {
public int addAB(int A, int B) {
if(B!=0){
int a=A^B;
int b=(A&B)<<1;
return addAB(a,b);
}else{
return A;
}
}
}