我是递归的新手,我无法理解如何计算这个递归因子函数。
当我尝试用我的思想运行代码时,这就是我将其可视化的方式:
如果number = 4,
第一次回归:4 x 3
第二次回归:3 x 2
第3次回归:2 x 1
所以在我看来它是(4 x 3)*(3 x 2)*(2 x 1)但显然正确的返回将是4 X 3 X 2 X 1。我希望能够理解它是如何获得4 X 3 X 2 X 1的。
public static long factorial(long number) {
if (number <= 1)
return 1;
else
{
System.out.println(number + " x " + (number-1) );
return number * factorial(number - 1);
}
}
任何帮助和解释将不胜感激。