读书人

汉诺塔有关问题(C语言实现)

发布时间: 2012-10-31 14:37:31 作者: rapoo

汉诺塔问题(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');
}

读书人网 >C语言

热点推荐