题目:
求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
代码:
1 class Solution { 2 public: 3 int Sum_Solution(int n) { 4 int answer = n; 5 answer && (answer += Sum_Solution(n - 1)); 6 return answer; 7 } 8 };
我的笔记:
- 利用逻辑与的短路特性实现递归的中止;
- 当answer == 0 时,answer && (answer += Sum_Solution(n - 1)); 只执行 answer;
- 当answer > 0 时,执行 answer += Sum_Solution(n - 1), 实现递归计算。