论坛首页 综合技术论坛

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

浏览 2046 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-05-10   最后修改:2011-05-10

/*
 *汉诺塔问题
 */

#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