java实现汉诺塔

2014-11-24 08:32:07 · 作者: · 浏览: 0
汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
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) {  
        System.out.println("Direction:" + A + "--->
" + C); } public static void main(String[] args) { Hanoi hanoi = new Hanoi(); hanoi.hanoi(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