Java教程

java分治实现汉诺塔

本文主要是介绍java分治实现汉诺塔,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!

java分治实现汉诺塔

/**
 * 分治实现汉诺塔
 *
 * @param num 盘子的数量
 * @param a
 * @param b
 * @param c
 */
public static void hanoiTower(int num, char a, char b, char c) {
    // 如果只有一个盘
    if (num == 1) {
        System.out.println("第1个盘从" + a + " => " + c);
    } else {
        // 剩下所有的盘A->B,移动过程用到C
        hanoiTower(num - 1, a, c, b);
        System.out.println("第" + num + "个盘从" + a + " => " + c);
        // B->C
        hanoiTower(num - 1, b, a, c);
    }
}

测试类

public static void main(String[] args) {
    hanoiTower(5, 'A', 'B', 'C');
}
这篇关于java分治实现汉诺塔的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!