求1+2+3+...+n,要求不能使用乘除法、for、while、if、else、switch、case等关键字及条件判断语句(A?B:C)。
数据范围: 
进阶: 空间复杂度
,时间复杂度 )
进阶: 空间复杂度
import java.util.stream.LongStream;
public class Solution {
public int Sum_Solution(int n) {
long sum = LongStream.rangeClosed(0L, n).parallel().reduce(0, Long::sum);
return Integer.valueOf(String.valueOf(sum)) ;
}
} public int Sum_Solution(int n) {
return IntStream.rangeClosed(1, n).reduce(0, Integer::sum);
} public int Sum_Solution(int n) {
boolean flag = (n > 1) && ((n += Sum_Solution(n - 1)) < 0);
return n;
} public class Solution {
public int Sum_Solution(int n) {
n = n == 1 ? 1 : n + Sum_Solution(n-1);
return n;
}
} public class Solution {
int ret = 0;
public int Sum_Solution(int n) {
// 用递归,短路作为终止条件
// x没有任何含义,包括Sum_Solution(n-1)>0也是,整个式子纯粹是为了让递归执行下去并设置终止(短路)条件
boolean x = n>0 && Sum_Solution(n-1)>0;
// 每次执行都加上当前n,到最后一次执行就是+0
ret += n;
return ret;
}
} public int Sum_Solution(int n) {
//等差数列求前N项和
return n+((n*(n-1))/2);
} /*
用递归。
声明sum与n分开,避免混乱。
用boolean类型的中间变量,使用&&的短路规则,进行递归结束。
*/
public int Sum_Solution(int n) {
//声明sum与n分开,避免混乱
int sum = n;
//用boolean类型的中间变量,使用&&的短路规则,进行递归结束
boolean flag = (n > 0) && ((sum += Sum_Solution(n-1)) > 1);
return sum;
}
class Solution { public: int Sum_Solution(int n) { int ans = n; ans && (ans += Sum_Solution(n - 1)); return ans; } };