不用加减乘除做加法
写一个函数,求两个整数之和,要求在函数体内不得使用+、-、*、/四则运算符号。
class Solution{
public:
int Add(int num1,int num2){
int sum=0;
int carry=0;
while(num2!=0){
sum=num1 ^ num2;//不带进位的结果
carry=(num1 & num2) << 1;//进位
num1=sum;
num2=carry;
}
return num1;
}
};
求1+2+3+...+n
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
class Solution {
public:
int Sum_Solution(int n) {
int res=n;
res && (res+=Sum_Solution(n-1));//使用 && 终止递归
return res;
}
};