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); }