河內塔是由三根柱子及N個盤子組成的遊戲,玩家需按規則依序將盤子由A柱移動到C柱,其規則如下:
- 一次只能移動一個盤子
- 大盤子不可以疊在小盤子上
JAVA:
import java.util.*;
public class HanoiTower {
private ArrayList route = new ArrayList();
public static void main(String args[]) {
System.out.print("請輸入盤數:");
HanoiTower hanoi = new HanoiTower();
int n = new Scanner(System.in).nextInt();
for(String move:hanoi.move(n, 'A', 'B', 'C'))
System.out.println(move);
}
private ArrayList move(int n, char a, char b, char c) {
if(n == 1) {
route.add(a + " -> " + c);
} else {
move(n - 1, a, c, b);
move(1, a, b, c);
move(n - 1, b, a, c);
}
return route;
}
}
河內塔的詳細介紹請看這裡
請先 登入 以發表留言。