输入格式:
正整数n。
输出格式:
搬盘子过程,每行一次搬动。
输入样例:
3
输出样例:
A->C
A->B
C->B
A->C
B->A
B->C
A->C代码如下:
#include <stdio.h>
#include <stdlib.h>
//Hanoi
void Hanoi(int n, char A, char B, char C);
int main()
{
    //设立盘子个数
    int n = 0;
    //输入盘子个数
    scanf("%d",&n);
    //递归函数
    Hanoi(n,'A','B','C');//传入ABC三个柱子 A:起始位置 B:经过位置 C:最终位置
    return 0;
}
//move
void move(char x, char y) {//x:起始位置 y:终止位置
        printf("%c->%c\n",x, y);
}
//Hanoi
void Hanoi(int n, char A, char B, char C) {
    //处理一个盘子
    if(n == 1) {
        move(A, C);
    }
    //处理n-1个盘子
    else {
        Hanoi(n - 1, A, C, B);//第一步将n-1个盘子从A经过C移到B
        move(A, C);//第二步将剩余盘子从A移到C
        Hanoi(n - 1, B, A, C);//第三步将n-1个盘子从B经过A移到C
    }
}










