数据结构与算法

汉诺塔

2018-09-12  本文已影响0人  hipeer

汉诺塔是由三根杆子A,B,C组成的。A杆上有N个(N>1)穿孔圆盘,盘的尺寸由下到上依次变小。要求按下列规则将所有圆盘移至C杆:每次只能移动一个圆盘;大盘不能叠在小盘上面。

/**
 * 汉诺塔
 *
 */
public class HanoiTower {

    private static int count = 1;
    public static void hanoiTower(int n, char a, char b, char c) {
        if (n == 1) {
            move(1, a, c);
        } else {
            hanoiTower(n - 1, a, c, b);
            move(n, a, c);
            hanoiTower(n - 1, b, a, c);
        }
    }

    public static void move(int n, char f, char t) {
        System.out.println("第"+count+"步: "+"让第"+n+"个盘子从"+f+"柱子移到"+t+"柱子");
        count++;
    }
    public static void main(String[] args) {
        hanoiTower(10,'A', 'B', 'C');
    }
}

上一篇 下一篇

猜你喜欢

热点阅读