汉诺塔问题--递归实现

/*汉诺塔问题*/

#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');

}

  

你可能感兴趣的:(递归)