#include<stdio.h>
#include<stdlib.h>
void hanoi(int n, char A, char B, char C)//将A柱上的n个盘子借助B柱移动到C柱上
{
if (n == 1)
printf("将编号为%d的盘子从%c柱子上移动到%c柱子上\n", n, A, C);
else
{
hanoi(n - 1, A, C, B);//将A柱上的n-1个盘子借助C柱移动到B柱上
printf("将编号为%d的盘子从%c柱子上移动到%c柱子上\n", n, A, C);
hanoi(n - 1, B, A, C);//将B柱上的n-1个盘子借助A柱移动到C柱上
}
}
int main()
{
char ch1 = 'A';
char ch2 = 'B';
char ch3 = 'C';
int n;
printf("请输入塔的盘子数:\n");
scanf("%d", &n);
hanoi(n, ch1, ch2, ch3);
return 0;
}
试运行结果: