描述
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
解法1,自增减(该方法明显不是出题者想要的解法,复杂度也相对来说比较大,但是在没有其他方法的时候,先解决问题时最重要的)
public class Solution {
public int Add(int num1,int num2) {
if (num2 < 0) {
int num=Math.abs(num2);
for(int i=0 ; i<num; i++){
num1--;
}
}
else {
for(int i=0; i<num2;i++)
num1++;
}
return num1;
}
}
解法2,运算符+递归
public class Solution {
public int Add(int num1,int num2) {
if(num2 == 0)
return num1;
else
return Add(num1^num2,(num1&num2)<<1);
}
}