题目描述
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
class Solution {
public:
int Add(int num1, int num2)
{
return num1!=0?Add((num1&num2)<<1, num1^num2 ):num2;
}
};
public:
int Add(int num1, int num2)
{
return num1!=0?Add((num1&num2)<<1, num1^num2 ):num2;
}
};
num1&num2<<1表示当前进位情况,而num1^num2二进制异或操作表示未进位相加。
这是牛客网的网友给出的详细的解释,贴出来: