剑指:求1+2+…+n

题目描述

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

样例

输入:10

输出:55

解法

前面的和+后一个即为所求的总和

有 if 的递归方法

public static int Sum_Solution(int n) {
    int res = n;
            
    if(n>0){
        res += Sum_Solution(n-1);
    }
    return res;
}

但题意说不能用 if ,所以:

public static int Sum_Solution(int n) {
     int res = n;
     boolean t = (res>0) && ((res += Sum_Solution(n-1))>0);
     return res;
}

java中&和&&的区别

&和&&都是逻辑运算符,用于判断两边同时为真则为真,否则为假。

但是&&当第一个条件为假之后,后面的条件就不执行了,它具有短路功能。

而& 还是要继续执行,直到整个条件语句执行完成为止。

原文地址:https://www.cnblogs.com/lisen10/p/11345152.html