汉诺塔问题 递归思想

#include
//递归写一个思路,不需要具体
void movee(int n,int x,int y,int z)
{
    if(n==1)
        printf("%c-->%c\n",x,z);
    else
    {
        movee(n-1,x,z,y);//将n-1个盘子利用z移动到y上
        printf("%c-->%c\n",x,z);//将第n个盘子从x移动到z上
        movee(n-1,y,x,z);//将n-1个盘子利用x移动到z上
    }
}
int main()
{
    int n;
    printf("请输入汉诺塔的层数:\n");
    scanf("%d",&n);
    printf("移动的步骤如下:\n");
    movee(n,'x','y','z');

   return 0;
}

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