题解 | #不用加减乘除做加法#
不用加减乘除做加法
https://www.nowcoder.com/practice/59ac416b4b944300b617d4f7f111b215
class Solution {
public:
// a+b = a^b + (a&b) << 1 位运算加法定理,记住就行
int Add(int num1, int num2) {
if (!num1 || !num2) {// 剔除有值为0情况
if (num1) return num1;
else if(num2) return num2;
else return 0;
}
int sum = 0;
while (num2 != 0) {// 当num2 == 0,表示不再需要进位
sum = num1^num2;//记录当前值
num2 = (num1&num2) << 1;//检测进位与否
num1 = sum;
}
return sum;
}
};
挤挤刷刷! 文章被收录于专栏
记录coding过程
查看30道真题和解析
