剑指offer 求1+2+3+...+n

题目:

求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), 实现递归计算。
原文地址:https://www.cnblogs.com/john1015/p/13096381.html