给定两个int A和B。编写一个函数返回A+B的值,但不得使用+或其他算数运算符。
测试样例:
1,2
返回:3
import java.util.*; public class UnusualAdd { public int addAB(int A, int B) { int carry=(A&B)<<1; A=A^B; B=carry; while (B!=0) {carry=(A&B)<<1; A=A^B; B=carry; } return A; } }
import java.util.*; public class UnusualAdd { public int addAB(int A, int B) { // write code here if (A == 0) { return B; } if (B == 0) { return A; } int sum = 0; int carry = 0; while (B != 0) { sum = A ^ B; carry = (A & B) << 1; A = sum; B = carry; } return A; } }
public int addAB(int A, int B) { int xor,and; while(B!=0){ xor = A^B; and = (A&B)<<1; A=xor; B=and; } return A; }