我仍然有問題要了解古代問題河內遞歸塔如何在這裏真正起作用。我已經從理論上讀了它,但我仍然不明白遞歸是如何在這裏被調用的。任何人都可以解釋每一步是怎麼回事,對前如果環的值爲2需要一些關於遞歸的解釋?
總的來說,我知道,遞歸調用本身,而是我在這裏卡住:
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner s = new Scanner(System.in);
System.out.println("Input the number of rings");
int rings = s.nextInt();
move(rings, 'A', 'B', 'C');
}
public static void move(int rings, char x, char y, char z){
if(rings > 0){
move(rings - 1, x, z, y);
System.out.println("Move ring " + rings + " from peg " + x + " to " + y + ".");
move(rings - 1, z, y, x);
}
}
爲什麼當我給環值1它直接到這條線:
System.out.println("Move ring " + rings + " from peg " + x + " to " + y + ".");
謝謝。
不知道你在問什麼。它會調用move(0,'A','C','B'),它不會做任何事情(因爲它不符合條件)。然後它會繼續調用輸出行。你能澄清你的問題嗎? – 2012-02-12 00:50:48