汉诺塔

作者: hipeer | 来源:发表于2018-09-12 22:26 被阅读0次

汉诺塔是由三根杆子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');
    }
}

相关文章

网友评论

    本文标题:汉诺塔

    本文链接:https://www.haomeiwen.com/subject/mifigftx.html