递归入门
#include<stdio.h>
void move(char a, char b)
{
printf("%c -> %c\n", a, b);
}
// 把a上的n个盘子通过b移动到c
void hanoi(char a, char b, char c, int n)
{
if(n == 1)
{
// 只有1个盘子的话就直接移动过去
move(a, c);
}
else
{
// 先把a上的n - 1个盘子通过c移动到b
hanoi(a, c, b, n - 1);
// 再把a的最下面的一个盘子移动到c
move(a, c);
// 最后把已经移动到b上的n - 1个盘子通过a移动到c
hanoi(b, a, c, n - 1);
}
}
int main()
{
hanoi('A', 'B', 'C', 3);
return 0;
}