1、A+B问题 给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符
思路:作异或得到未进位和,作与并向左移1位得到进位,随后再重复操作俩结果,直到进位为0,适合用递归
public int aplusb(int a, int b) { int sum = a ^ b; int ca = (a & b) << 1; if (ca == 0) { return sum; } return aplusb(sum, ca); }
1、A+B问题 给出两个整数a和b, 求他们的和, 但不能使用 + 等数学运算符
思路:作异或得到未进位和,作与并向左移1位得到进位,随后再重复操作俩结果,直到进位为0,适合用递归
public int aplusb(int a, int b) { int sum = a ^ b; int ca = (a & b) << 1; if (ca == 0) { return sum; } return aplusb(sum, ca); }
相关文章: