2007-06-26

java实现汉诺塔(Hanoi)--递归

关键字: java
最近学校要我们用数据做什么课题!,结果我被抽中来做这个!用C语言分别用递归和非递归的方法做了!想想自己也是学java的,用java试了下!成功了!编译通过后,java HanoiY 加上你的盘子数,最多只能64
java 代码
  1. public class HanoiY   
  2. {   
  3.        
  4.     void Move(char chSour,char chDest){   
  5.         System.out.println("Move the top plate of "+chSour+"-->"+chDest);   
  6.     }   
  7.   
  8.     void Hanoi(int n,char chA,char chB,char chC)   
  9.     {   
  10.         if(n==1)   
  11.             Move(chA,chC);   
  12.         else  
  13.         {   
  14.             Hanoi(n-1,chA,chC,chB);   
  15.             this.Move(chA,chC);   
  16.             Hanoi(n-1,chB,chA,chC);   
  17.         }   
  18.     }   
  19.   
  20.     public static void main(String[] args)   
  21.     {   
  22.         int n=Integer.parseInt(args[0]);   
  23.         HanoiY han=new HanoiY();   
  24.         han.Hanoi(n,'A','B','C');   
  25.     }   
  26. }  
  • 67f627ce-5a7f-4ced-bd6b-3d0119b21ab8-thumb
  • 描述:
  • 大小: 103 KB
评论
zhangchibang 2008-02-25
博主 有个关于这段汉诺塔程序的问题 想请交一下
# Hanoi(n-1,chA,chC,chB);   
#             this.Move(chA,chC);   
#             Hanoi(n-1,chB,chA,chC);  


这段程序中的 chA chB chC 的移动逻辑是什么 为什么要这么移动
我不是很明白 递归解决汉诺塔问题 还想请教博主
发表评论

您还没有登录,请登录后发表评论

lijie250
搜索本博客
最近加入圈子
存档
最新评论