#include
void move (int h,char c,char f)//h为盘的编号,从c轴移到f轴
{
printf("The num of %d disk is moved: %c-->%c/n",h,c,f);
}
void hanoi (int n,char x,char y,char z)//n为盘的编号,x为这n个盘所在的轴,y为中间轴,z为目的轴
{
if (n == 1)
move (1,x,z);
else
{
hanoi(n-1, x, z, y);//先把x轴上编号为n的上面的n个盘从x(所在轴)移到y(目的轴),z为中间轴
move (n,x,z);//将编号为n的盘从x移到n
hanoi (n-1, y, x, z);//这时这n-1个盘在y轴上,将这n-1个盘从y轴(所在轴)移到z轴(目的轴),x为中间轴
}
}//整个是个递归调用,将n个盘的转移转化为n-1个盘的转移,在转为n-2个盘的转移…………1个盘的转移
void main()
{
int num;
printf("The number of disks:/n");
scanf("%d",&num);
hanoi(num,'A','B','C');
}
和你那个一样的。。。你看懂了C语言实现的思路就好。。
去看看汉诺塔原理吧