题目描述
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
思路
递归采用 按位与 和 异或(不同为真) 的方法进行求值
如果两值按位为真则将按位与结果左移一位继续递归,如果为假则返回异或值。
class Solution{
public:
int Add(int num1,int num2){
if(num1&num2){
return Add((num1&num2)<<1,num1^num2);
}else{
return num1^num2;
}
}
};
题目描述
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
思路
递归采用 按位与 和 异或(不同为真) 的方法进行求值
如果两值按位为真则将按位与结果左移一位继续递归,如果为假则返回异或值。
class Solution{
public:
int Add(int num1,int num2){
if(num1&num2){
return Add((num1&num2)<<1,num1^num2);
}else{
return num1^num2;
}
}
};