我在学习递归需要更好的解释下面的代码。我大部分时间都处于关闭状态,但不是我在函数的最后部分对return f(n-1) + 5
表示困惑。我得到了f(7)的32,这是正确的,并且在最后打印出来,但我仍然有点模糊,并想知道是否有人会给我一个更好的解释。 The output。 我知道,一旦n = 1 f(n-1)
n首先是7,然后(7-1)= 6,依此类推,直到它变为1,返回值2,但在这里我得到了丢失。那么+ 5
呢? 2 + 5 = 7,7 + 5 = 12,... 27 + 5 = 32,请问这个领带的f(n-1) + 5
了解返回f(n-1)+ 5.
public class scratch {
public static void main(String[] args) {
System.out.println(f(7));
}
static int f(int n) {
System.out.println("f(" + n + ")");
if (n <= 1)
return 2;
else
return f(n - 1) + 5;
}
}
这不是一个因子方法,这是错误的:( – wajeeh
这是一个因子方法: 'static int f(int n){ System.out。println(“f(”+ n +“)”);如果(n <= 1){ 返回1; } else { return f(n-1)* n; } }' – wajeeh
谢谢。我对另一个问题感到困惑。 – EdtheGreat