题目:求1+2+3+…+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
这道题的难点在于如何判断连加停止。不能用循环那我们可以用递归来实现连加,停止条件就是当n=0的时候不进行递归。这里就需要用到&&运算符。
&&运算符有一个短路特性,即第一个条件成立才判断第二个条件,如果第一个条件不成立,那么就不会执行第二个条件。这里我们就用到了&&短路进行求值。
int Sum_Solution(int n) {
int sum=n;
sum&&(sum+=Sum_Solution (n-1));
return sum;
}