剑指:求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中&和&&的区别

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

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

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

相关文章

Java中的String是不可变对象 在面向对象及函数编程语言中,不...
String, StringBuffer 和 StringBuilder 可变性 String不可变...
序列化:把对象转换为字节序列的过程称为对象的序列化. 反序...
先说结论,是对象!可以继续往下看 数组是不是对象 什么是对...
为什么浮点数 float 或 double 运算的时候会有精度丢失的风险...
面试题引入 这里引申出一个经典问题,看下面代码 Integer a ...