public class Ta{
     public void move(int n,char a,char b,char c){
           if(n==1)
              System.out.println(a+"->"+b);
           else if(n==2){
              System.out.println(a+"->"+c);
              System.out.println(a+"->"+b);
              System.out.println(c+"->"+b);
              }
           else{
              move(n-1,a,c,b);
              System.out.println(a+"->"+b);
              move(n-1,c,b,a);
             }
     }     public static void main(String []args){
           Ta test=new Ta();
           test.move(64,'a','b','c');
     }
     
}

解决方案 »

  1.   

    的确 高智商 HANOI算法 64个盘子,一步一步写也至少要10年吧 ,谁智商高到那种程度去写这玩意
      

  2.   

    搞什么啊,编译能过吗?
    move(int   n,char   a,char   b,char   c) //看参数是字符类型调用的地方
    test.move(64, "a ", "b ", "c "); //参数是字符串类型要执行2的64次方次,相当于10的22次方
      

  3.   

    这道题其实很有意思的,BS一下不动脑筋只会骂人的家伙汉诺塔问题用递归实现的话,虽然算法简单易懂,但是效率是最差的,因为每一次递归调用都要保留上下文,步数很大的情况下,目前CPU的计算能力无法满足要求对于此类问题可以考虑将递归转化成非递归形式,具体怎么做看经典的严版《数据结构》具体到汉诺塔问题,每一步的移动都是有规律的,给出一个参考地址:
    http://blog.csdn.net/xuegao007/archive/2007/08/03/1723782.aspx
      

  4.   

    搞什么啊,编译能过吗? 
    move(int       n,char       a,char       b,char       c)   //看参数是字符类型 调用的地方 
    test.move(64,   "a   ",   "b   ",   "c   ");   //参数是字符串类型 要执行2的64次方次,相当于10的22次方 21楼的,你仔细看看题目哈,这“”是你自己改的吧!!!