System.out.println(getFactorialRecursion(12));
public static int getFactorialRecursion(int month){
if(month == 1 ||month == 2){
return 1;
}
return getFactorialRecursion(month - 1) + getFactorialRecursion(month - 2);
}
请问 return getFactorialRecursion(month - 1) + getFactorialRecursion(month - 2);怎么理解呀
是每次return getFactorialRecursion(month - 1)就加载方法,还是return getFactorialRecursion(month - 1) + getFactorialRecursion(month - 2);都加载完了再加载方法?
每次调用方法,都把它压入栈,直到遇到递归结束返回。按运算顺序,从左往右依次入栈。方法调用返回,后进的先出栈,依次计算并返回。你可以在这个方法里打个断点,按照我下面给出的示例代入了解下:
先getFactori(month-1)一直递归到return 1 然后执行getFactori(month-2)一直递归到return 1 然后想加 。每次递归都是样执行。
把问题分解为小问题,在能够解决的时候返回实际值
不知道你这个问题是否已经解决, 如果还没有解决的话: