import java.util.*; public class UnusualAdd { public int addAB(int A, int B) { int C = 0; while (B != 0) { C = A ^ B; B = (A & B) << 1; A = C; } return A; } }
思路:不能用 + ,那么就要考虑二进制加的本质,是 无相位相加和位运算
1.当不考虑 位运算时,a + b = a^ b
2.如 无 进位 时 直接返回,有位运算 << 进位 1 ,赋值后重新计算即可