我忙於學習java中的遞歸,並且很難理解它在大多數情況下的工作原理。我有一個示例程序從書,這是他們要求你發現如果n = 3的輸出:爲什麼這個遞歸程序給我這個輸出?
public void printX(int n){
if(n <= 0)
System.out.print(0);
else{
printX(n-1);
System.out.print(n);
printX(n - 2);
}
}
我認爲結果將是「231」。然而,在Eclipse中輸入代碼並運行該程序後,結果顯示代碼爲「010203010」。
有人能幫助我理解爲什麼這是輸出而不是我的想法?
那麼當'n-1'或'n-2'小於或等於'0'時,您不會阻止發生調用... –
瞭解您首先需要了解遞歸的遞歸 – Eugene
您是否已經教授關於樹結構和深度優先? – CraigR8806