首页 > 开发 > C > 正文

汉诺塔-递归

2015-08-30 23:11:43  来源: 网友分享


语言:C环境:VC++6.0
            
#include   void main()
  {      
          void hanoi(int n,char A,char B,char C);      
          int n;
      printf ("the num of disk:");
      scanf ("%d",&n);
      printf ("the step to moving %d disks:\n",n);
      hanoi (n,'A','B','C');
  }  void hanoi(int n,char A,char B,char C)
  { 
      void move(char x, char y);     
      if(n==1)
      move(A,C);      
      else
      hanoi(n-1,A,C,B),
      move(A,C),
      hanoi(n-1,B,A,C);     // n!=1 ? hanoi(n-1,A,C,B),move(A,C),hanoi(n-1,B,A,C):move(A,C);//n==1?move(A,C):hanoi(n-1,A,C,B),move(A,C),hanoi(n-1,B,A,C);
  }  void move(char x, char y)
  {
    printf("%c-->%c\n",x,y);
  }