(Hanoi)汉诺塔java实现程序
来源:互联网 发布:redis存储json数据 编辑:程序博客网 时间:2024/05/22 10:46
汉诺塔:汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着64片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。
图片来源:http://caterpillar.onlyfun.net/Gossip/AlgorithmGossip/HanoiTower.htm
java实现代码如下:
import javax.swing.JOptionPane;public class HanoiTemple {/** * @param args */public static void main(String[] args) { String n=JOptionPane.showInputDialog("请输入要移到的盘数:"); HanoiTemple ht=new HanoiTemple(); ht.move(Integer.parseInt(n),'A','B','C');}public void move(int n,char a,char b,char c){if(n==1){System.out.println("move from "+a+" to "+c);}else{move(n-1, a,c,b);move(1, a, b, c);move(n-1, b, a, c);}}}
程序用到了递归的思想。当只有1个盘时,只需直接从A移到C即可。
当有2个盘时,过程如下:A>>B A>>C B>>C
总结规律,当n>=2时,
先将上面的 n-1 个盘由 A 借助 C 移到 B
然后最底下的一个大盘由 A 借助 B 移到 C (实际上就是直接从 A 移到 C)
最后将 B 上的 n-1 个盘由 B借助 A 移到 C
- (Hanoi)汉诺塔java实现程序
- 汉诺塔(hanoi)算法实现
- Hanoi问题java实现
- 汉诺塔(Hanoi Tower)的实现
- 汉诺塔(Hanoi)问题递归算法实现
- 实现汉诺塔(Hanoi)问题(堆栈、递归)
- 汉诺塔 Hanoi 递归实现
- hanoi汉诺塔C++实现
- c++实现hanoi(汉诺塔)
- Hanoi汉诺塔问题(java)
- [js - 算法可视化] 汉诺塔(Hanoi)演示程序
- Hanoi程序
- 汉诺塔(hanoi) C语言实现
- 汉诺塔hanoi的python实现
- 汉诺塔(hanoi)
- 汉诺塔(Hanoi Tower)
- Hanoi(汉诺塔)问题。
- hanoi(汉诺塔)问题
- android Activity中启动另一应用程序的方法,无需得到类名
- 关于OpenCV中利用函数cvConvert实现图像数据类型转换(8U->16S)
- GeekOs系统调用
- Linux设备模型分析之kset
- 每日一练 Lucene3.5 建立索引
- (Hanoi)汉诺塔java实现程序
- Android系列教程之五:Activity的生命周期
- 求大神路过指导ZOJ3597 Hit the Target!
- 第十周任务一
- ubuntu每天定时关机
- Android动画开发——Animation动画效果
- 进程状态
- 深入浅出 Cocoa 之生成 Framework
- 【ETL】拉链表算法