C 语言程序设计实践 7.9 汉诺塔

来源:互联网 发布:淘宝睡衣退款率 编辑:程序博客网 时间:2024/05/22 10:29


AC代码:


#include <stdio.h>  #include <math.h>  void Hanoi (int n,char A[],char B[],char C[]);  void move (char a[],char b[]);  int main()  {      int n,t;      char A[20],B[20],C[20];      scanf("%d %s %s %s",&n,A,B,C);      t=pow(2,n)-1;      printf("%d\n",t);      Hanoi(n,A,B,C);//把n个盘从A借助B移到C    return 0;  }    void Hanoi (int n,char A[],char B[],char C[])  {      if (n==1)          move(A,C);      else{          Hanoi (n-1,A,C,B);//那就得先把n-1个盘先从A借助C移到B        move(A,C);//再把剩下的那个盘从A直接移到C        Hanoi (n-1,B,A,C);//接着把那n-1个盘从B借助A移到C    }  }    void move (char a[],char b[])  {      printf("%s->%s\n",a,b);  }




0 0
原创粉丝点击