2007-06-26
java实现汉诺塔(Hanoi)--递归
关键字: java最近学校要我们用数据做什么课题!,结果我被抽中来做这个!用C语言分别用递归和非递归的方法做了!想想自己也是学java的,用java试了下!成功了!编译通过后,java HanoiY 加上你的盘子数,最多只能64
java 代码
- public class HanoiY
- {
- void Move(char chSour,char chDest){
- System.out.println("Move the top plate of "+chSour+"-->"+chDest);
- }
- void Hanoi(int n,char chA,char chB,char chC)
- {
- if(n==1)
- Move(chA,chC);
- else
- {
- Hanoi(n-1,chA,chC,chB);
- this.Move(chA,chC);
- Hanoi(n-1,chB,chA,chC);
- }
- }
- public static void main(String[] args)
- {
- int n=Integer.parseInt(args[0]);
- HanoiY han=new HanoiY();
- han.Hanoi(n,'A','B','C');
- }
- }
评论
zhangchibang
2008-02-25
博主 有个关于这段汉诺塔程序的问题 想请交一下
这段程序中的 chA chB chC 的移动逻辑是什么 为什么要这么移动
我不是很明白 递归解决汉诺塔问题 还想请教博主
# Hanoi(n-1,chA,chC,chB); # this.Move(chA,chC); # Hanoi(n-1,chB,chA,chC);
这段程序中的 chA chB chC 的移动逻辑是什么 为什么要这么移动
我不是很明白 递归解决汉诺塔问题 还想请教博主







评论排行榜