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

题目:求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。

 

思路:有很多方法,比如利用递归,只是要想办法去掉if终止条件判断,可以利用&&短路思想处理.

1 class Solution {
2 public:
3     int Sum_Solution(int n) {
4         int sum = n;
5         sum && (sum += Sum_Solution(n - 1)); //利用&&原理代替if做判断,即如果sum==0,&&前面为假,则后半部分不判断.
6         return sum;
7     }
8 };

 

posted @ 2019-03-06 00:12  琴影  阅读(133)  评论(0编辑  收藏  举报