1 #include<stdio.h> 2 #include <stdlib.h> 3 4 int count=0; //主函数之外定义的变量为全局变量 5 void Hanoi(int n, char A, char B, char C) //n为盘子数,A:原位置,B:过渡位置,C:目标位置 6 { 7 if(n==1) //当盘子只有一个的情况下 由A移动到C 8 { 9 count++; //计数加一 10 printf("%c->%c %d ",A,C,count); 11 } 12 else 13 { 14 Hanoi(n-1,A,C,B); //将第n个盘子之上的n-1个盘子视为一个整体 15 count++; 16 printf("%c->%c %d ",A,C,count); 17 Hanoi(n-1,B,A,C); 18 } 19 } 20 int main() 21 { 22 Hanoi(5,'A','B','C'); 23 printf("%d ",count); 24 return 0; 25 }