不用加减乘除做加法
题目
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/
四则运算符号。
解题思路
- 将加法分解成两步
- 两个数不计算进位相加得到
sum
,计算进位carry
- 再将进位加上:
sum = sum + carry
- 直到没有进位为止
public int Add(int num1, int num2) {
int sum, carry;
do {
sum = num1 ^ num2;
carry = (num1 & num2) << 1;
num1 = sum;
num2 = carry;
} while (num2 != 0);
return sum;
}
当前内容版权归 Hayden Yang 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 Hayden Yang .