求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
解法一:利用短路求值方法
class Solution {
public:
int Sum_Solution(int n) {
n && (n += Sum_Solution(n-1));
return n;
}
};
解法二:利用构造函数
class Solution {
public:
Solution(){
++num;
sum += num;
}
int Sum_Solution(int n) {
num = 0,sum = 0;//这里需要初始化
Solution *arr = new Solution[n];
delete []arr;
arr = nullptr;
return sum;
}
private:
static int num;
static int sum;
};
int Solution::num = 0;
int Solution::sum = 0;