递归求和是指使用递归函数来计算一个数列的和。下面是一个简单的示例代码,演示如何使用递归函数来计算一个数列的和
public class _06Sum {
// f(n) = f(n-1) + n , Java递归会出现暴栈问题,
// Scala可以使用尾递归解决暴栈问题
// Java解决方式是避免使用递归, 改用循环方式
public static long sum(long n){
if(n == 1) return 1;
return n + sum(n - 1);
}
// 使用循环解决暴栈问题
public static long sum2(long n) {
long sum = 0 ;
for (long i = n; i >= 1; i--) {
sum += i ;
}
return sum ;
}
public static void main(String[] args) {
System.out.println(sum(1000));
System.out.println(sum2(100000));
}
}