把汉诺塔想象成两个盘子,上面为n-1个,下面为第n个,那么就知道前n-1和第n个的递归关系了。
#include<iostream>
#include<cstdio>
using namespace std;
void hanoi(int n,char a,char b,char c){
if(n>0){
hanoi(n-1,a,c,b);
printf("Move dish from pile %c to %c\n",a,c);
hanoi(n-1,b,a,c);
}
}
int main(){
int n;
scanf("%d",&n);
hanoi(n,'A','B','C');
return 0;
}