题目描述
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
一
typedef int (*func)(int);
class Solution
{
public:
static int Sum_Solution(int n)
{
static func f[2] = { Solution1,Sum_Solution };
return n + f[!!n](n - 1);
}
static int Solution1(int n)
{
return 0;
}
};
二
class Solution
{
public:
int Sum_Solution(int n)
{
int result = n;
result && (result += Sum_Solution(n - 1)); //&&就是逻辑与,逻辑与有个短路特点,前面为假,后面不计算
return result;
}
};