这是我对递归问题使用的以下代码
有人可以让我了解24的输出吗?
为了证明我的困惑,我认为输出应该是6,12,20,1
package Examples;
public class QuestionDemo {
public static void main(String[] args) {
System.out.println(recCall(2));
}
public static int recCall(int num) {
if (num == 5) {
return 1;
} else {
return num * recCall(++num);
}
}
}
最佳答案
您有4个递归调用
调用recCall(2)时的第一个
然后recCall(3),recCall(4)和recCall(5)
recCall(5)返回1
recCall(4)返回4 * 1
recCall(3)返回3 * 4 * 1
recCall(2)返回2 * 3 * 4 * 1 = 24