汉诺塔问题(C语言实现)
/*
?*汉诺塔问题
?*/
#include<stdio.h>
void move(int n,char x,char y ,char z)//n表示盘子的个数
{
?if(n==1)//将编号为1的盘子直接从x到z
??printf("move disk 1 from %c to %c\n",x,z);
?else{
??move(n-1,x,z,y);//x通过z将1至n-1个盘子移到y
??????? printf("move disk %d from %c to %c\n",n,x,z);//将编号为n的盘子从x移到z
??move(n-1,y,x,z);//y通过x将1至n-1个盘子移到z
?}
}
void main()
{
?int n;
?printf("please input the number of disk:\n");
?scanf("%d",&n);
??? move(n,'X','Y','Z');
}