来源:力扣(LeetCode)
链接:https://leetcode-cn.com/problems/bu-yong-jia-jian-cheng-chu-zuo-jia-fa-lcof
面试题65. 不用加减乘除做加法
写一个函数,求两个整数之和,要求在函数体内不得使用 “+”、“-”、“*”、“/” 四则运算符号。
示例:
输入: a = 1, b = 1
输出: 2
举例子说明:
计算a+b,等价于(a^b)+((a&b)<<1) ,为了不出现加法操作,一直这样操作,直到(a&b)<<1==0为止
代码:
class Solution {
public int add(int a, int b) {
while(b!=0){
int plus = a^b;
b = (a&b)<<1;
a = plus;
}
return a;
}
}