BeatificDevin

。。

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
/*汉诺塔问题*/
#include <stdio.h>
#include <stdlib.h>

//定义n为移动的层数,x,y,z分别代表三根柱子,表示把前n层塔牌从x借助y移动到z
void move(int n,char x,char y,char z)
{
    if(n == 1)
    {
        printf("从 %c 移动到 %c \n",x,z);
    }
    else
    {
        move(n-1,x,z,y);
        printf("从 %c 移动到 %c \n",x,z);
        move(n-1,y,x,z);
    }
}

int main()
{
    int m;
 //   char X,Y,Z;
    printf("请输入层数: \n");
    scanf("%d",&m);
    move(m,'X','Y','Z');
}

  

posted on 2014-12-15 22:12  BeatificDevin  阅读(284)  评论(0编辑  收藏  举报