链接:另类加法__牛客网
来源:牛客网
[编程题]另类加法
- 热度指数:5727 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 32M,其他语言64M
给定两个int A和B。编写一个函数返回A+B的值,但不得使用+或其他算数运算符。
测试样例:
1,2返回:3
按位异或运算和不带进位的加法的结果一致
按位与运算和求进位的结果一致
加法可以表示成A^B+(A&B)<<1
- 全部代码
import java.util.*;
public class UnusualAdd {
public int addAB(int A, int B) {
// write code here
//carry是进位,sum是和
int carry ,sum;
while(B != 0){
sum = A^B;
carry = ((A&B) << 1);
A = sum;
B = carry;
}
return A;
}
}



