import java.util.*;
public class Main {
public static void main(String[] args) {
@SuppressWarnings("resource")
Scanner sc = new Scanner(System.in);
while (sc.hasNext()) {
Long n = sc.nextLong();
sum(n);
System.out.println(sum(n));
}
}
public static Long sum(Long n) {
Long add = 0l;
if (n == 1l)
return 1l;
else
add = n + sum(n - 1);
return add;
}
}
参数保存在当前线程的栈Stack中,而不是保存在堆Heap中。
Java虚拟机默认的Heap大小是128M。
每一个线程,默认的栈大小只有512KB。
所以,Java不能支持过多层次的递归调用。
可以加上参数
Java -Xss32m digui1来设置线程的Stack的大小