首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

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

2012-10-31 
汉诺塔问题(C语言实现)/*?*汉诺塔问题?*/#includestdio.hvoid move(int n,char x,char y ,char z)//n表

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

热点排行