一、不好的写法
public static void main(String[] args) {
long fun = fun(10);
System.out.println(fun);
}
public static long fun(long n) {
if (n == 1) {
return 1;
}
return n * fun(n - 1);
}
使用递归完成需求,fun1方法会执行10次,并且第一次执行未完毕,调用第二次执行,第二次执行
未完毕,调用第三次执行…最终,最多的时候,需要在栈内存同时开辟10块内存分别执行10个fun1方法。
二、好的写法
public static void main(String[] args) {
long fun = fun(10);
System.out.println(fun);
}
public static long fun(long n) {
int result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
return result;
}
使用for循环完成需求,fun2方法只会执行一次,最终,只需要在栈内存开辟一块内存执行fun2方法
即可。