剑指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 };
越努力,越幸运