我在學習遞歸需要更好的解釋下面的代碼。我大部分時間都處於關閉狀態,但不是我在函數的最後部分對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