Hanoi(n,A,B,C) : A借助B将n个盘子移动到C。
第一步:A借助C将n-1个盘子移动到B; Hanoi(n-1,A,C,B);
第二步:将A上剩余的一个盘移到C;A-->C
第三步:B借助A将n-1个盘子移动到C;Hanoi(n-1,B,A,C);
#include <iostream>
#include <cstdio>
using namespace std;
void Hanoi(int n,char A,char B,char C)
{
if(n==1){
printf("第%d个盘子:%c --> %c
",n,A,C);
return ;
}
Hanoi(n-1,A,C,B);
printf("第%d个盘子:%c --> %c
",n,A,C);
Hanoi(n-1,B,A,C);
}
int main()
{
int n;
cin>>n;
Hanoi(n,'A','B','C');
return 0;
}