漢諾塔(又稱河內塔)問題是源於印度一個古老傳說的益智玩具。大梵天創造世界的時候做了三根金剛石柱子,在一根柱子上從下往上按照大小順序摞着64片黃金圓盤。大梵天命令婆羅門把圓盤從下面開始按大小順序重新擺放在另一根柱子上。並且規定,在小圓盤上不能放大圓盤,在三根柱子之間一次只能移動一個圓盤。以下是小編爲大家搜索整理的java如何實現漢諾塔,希望能給大家帶來幫助!更多精彩內容請持續關注我們應屆畢業生考試網!
public class Hanoi {
/**
*
* @param n
*
盤子的'數目
* @param A
*
源座
* @param B
*
輔助座
* @param C
*
目的座
*/
public void hanoi(int n, char A, char B, char C) {
if (n == 1) {
move(A, C);
} else {
hanoi(n - 1, A, C, B);
move(A, C);
hanoi(n - 1, B, A, C);
}
}
// 打印移動路徑
private void move(char A, char C) {
tln("Direction:" + A + "--->" + C);
}
public static void main(String[] args) {
Hanoi hanoi = new Hanoi();
i(3, '1', '2', '3');
} }
打印結果:
Direction:1--->3
Direction:1--->2
Direction:3--->2
Direction:1--->3
Direction:2--->1
Direction:2--->3
Direction:1--->3