欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

[剑指offer]---46 求1+2+3+…+n

程序员文章站 2022-07-10 12:20:02
...
  • 温馨 小提示:如果代码看不懂,不妨拿出纸和笔,找几个例子,多走几遍程序,

                   再搜索一下相关的博客,慢慢的就加深理解了。


题目:

求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.weiweiblog.cn/sum_solution/

https://blog.csdn.net/fuxuemingzhu/article/details/79703258