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

本文首发于我的个人博客:尾尾部落

题目描述

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

解题思路

累加不能用循环的话,那就试试递归吧。
判断递归的终止条件不能用 if 和 switch,那就用短路与代替。
(n > 0) && (sum += Sum_Solution(n-1))>0
只有满足n > 0的条件,&&后面的表达式才会执行。

参考代码

public class Solution {
    public int Sum_Solution(int n) {
        int sum = n;
        boolean t = (n > 0) && (sum += Sum_Solution(n-1))>0;
        return sum;
    }
}
    原文作者:繁著
    原文地址: https://www.jianshu.com/p/4c795dc33118
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞