题目描述
- 求 1+2+...+n,要求不能使用乘除法、for、while、if、else、switch、case、等关键字及条件判断语句 (A ? B : C)
题目解读
- 剑指Offer 307
- 1、需利用逻辑与的短路特性实现递归终止
- 2、当 result == 0时,
result && (result += Sum_Solution(n-1));只执行前面的判断,为 false,直接返回 0 - 3、当 result != 0时,
result && (result += Sum_Solution(n-1));通过前面的判断,为 true,则执行(result += Sum_Solution(n-1))进入递归函数计算
代码
class Solution {
public:
int Sum_Solution(int n) {
int result = n;
result && (result += Sum_Solution(n-1));
return result;
}
};
