题目描述
求 1+2+…+n,要求不能使用乘除法、for、while、if、else、switch、case 等关键字及条件判断语句 (A?B:C)。
样例
输入:10
输出:55
算法1
(递归)
不能用 (1) n(n+1)/2 (2) for(1..n) (3)dfs(){ if()}
考虑用 && 替代 if
C++ 代码
class Solution {
public:
int getSum(int n) {
int res = n;
n > 0 && (res += getSum(n-1));
return res;
}
};
算法2
(二逼做法)
曲线救国:效果等同于 n(n+1)/2
源自大神:https://www.acwing.com/solution/content/6593/
C++ 代码
class Solution {
public:
int getSum(int n) {
char a[n][n+1];
return sizeof(a)>>1;
}
};