汉诺塔算法
来源:互联网 发布:linux mysql编程 编辑:程序博客网 时间:2024/06/06 16:25
汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。后来,这个传说就演变为汉诺塔游戏,玩法如下:
- 1.有三根杆子A,B,C。A杆上有若干碟子
- 2.每次移动一块碟子,小的只能叠在大的上面
- 3.把所有碟子从A杆全部移到C杆上
以下实例演示了汉诺塔算法的实现:
/* author by w3cschool.cc MainClass.java */public class MainClass { public static void main(String[] args) { int nDisks = 3; doTowers(nDisks, 'A', 'B', 'C'); } public static void doTowers(int topN, char from, char inter, char to) { if (topN == 1){ System.out.println("Disk 1 from " + from + " to " + to); }else { doTowers(topN - 1, from, to, inter); System.out.println("Disk " + topN + " from " + from + " to " + to); doTowers(topN - 1, inter, from, to); } }}
以上代码运行输出结果为:
Disk 1 from A to CDisk 2 from A to BDisk 1 from C to BDisk 3 from A to CDisk 1 from B to ADisk 2 from B to CDisk 1 from A to C
0 0
- 汉诺塔算法
- “汉诺塔”算法
- 汉诺塔算法
- 汉诺塔算法
- 汉诺塔算法
- 汉诺塔算法
- 汉诺塔算法
- 【算法】汉诺塔
- 汉诺塔算法
- 汉诺塔-算法
- 汉诺塔算法
- 汉诺塔算法
- 汉诺塔算法
- 汉诺塔算法
- 汉诺塔 算法
- 汉诺塔算法
- 汉诺塔算法
- 汉诺塔算法
- 音乐锁屏后台挂起以及远程操作
- 使用GCD
- 【嵌入式学习日记】2016年8月16日
- 数据结构实验之图论四:迷宫探索
- ScrollView中嵌套ListView/GridView导致的问题总结
- 汉诺塔算法
- bzoj1036 树的统计 树链剖分
- [CF 513F2]躲藏
- 读取指定行数文件内容并显示
- libvirt savevm 命令存储内存文件分析
- PHPChina中的Yii2与Discuz会员打通(单点登录)
- 剑指Offer笔记<JAVA版>(一)
- UML图
- 接口测试的一些感悟