[每日一道小算法(十六)] [进制转化] 求解1+2+3+...+n

前言:
这道题挺有意思的,我想了挺久的,基本的判断语句都不让用,哈哈,挺有挑战的,希望自己多练练脑子,智商能有长进吧。

题目解析

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

解析

哇,一个条件语句都不让用,这可怎么办呢?要疯掉了。没了条件判断怎么终止呀,想了好久真的没思路。然后我就去做别的事情去了,突然,我看到了我的代码中有&&逻辑与这个条件,这个第一个条件为假,就后面条件不会执行。豁然开朗,可以使用递归配合这个解决这个问题呀。

代码样例

public class Solution {
    public int Sum_Solution(int n) {
        int sum = n;
        boolean flag= (n>0)&&((sum+=Sum_Solution(n-1))>0);
        return sum;
    }
}

你可能感兴趣的:(算法合集)