【发布时间】:2018-05-16 02:47:09
【问题描述】:
我知道如何计算数字的阶乘,但我想在方法调用自身时显示内存中发生的情况。所以使用递归的阶乘是休闲
public static long factorial(int n) {
if (n == 1) return 1;
return n * factorial(n-1);
}
我想实现以下目标
factorial(5)
factorial(4)
factorial(3)
factorial(2)
factorial(1)
return 1
return 2*1 = 2
return 3*2 = 6
return 4*6 = 24
return 5*24 = 120
我已经到了这一点...我无法显示方法的递归返回(第二部分)
public static long factorial(int n) {
System.out.println("factorial("+n+")");
if (n == 1) {
System.out.println("return 1");
return 1;
}
return n * factorial(n-1);
}
【问题讨论】: