河內塔是由三根柱子及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; } }
河內塔的詳細介紹請看這裡
全站熱搜
留言列表