这是按照严蔚敏书55页上写的。
#include <stdio.h>
#include <stdlib.h>
int c = 0; //表示移动的次数
void move(char x, int n, char z)
{
printf("Move disk %d from %c to %c\n", n, x, z);
}
void hanoi(int n,char x, char y, char z)
{a
if (1 == n)
{
move(x,1,z);
++c;
}
else
{
hanoi(n-1,x,z,y);
move(x,n,z);
hanoi(n-1,y,x,z);
}
}
int main()
{
int n;
printf("please input the numbers of circle pans:\n");
scanf("%d",&n);//表示A盘上盘子个数
hanoi(n,'A','B','C'); //A,B,C表示盘子
printf("total:%d\n",c);
return 0;
}