数据结构学习笔记-20

汉诺塔

#include <stdio.h>
#include <stdlib.h>

void move(int n, char x, char y, char z)
{
    if( 1 == n )
    {
        printf("%c--->%cn", x, z);
    }
    else
    {
        move(n-1, x, z, y); //n-1个盘子从x借助z移动到y
        printf("%c--->%cn", x, z); //将第n个盘子从x 移动到z
        move(n-1, y, x, z); //n-1个盘子从y借助x移动到z
    }
}

int main()
{
    int n;
    scanf("%d", &n);
    move(n, 'X', 'Y', 'Z');
    return 0;
}