`
Touch_2011
  • 浏览: 287255 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

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

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics