思路:利用递归分三步走
1. 将n个盘子从a移到b,c作为辅助
2. 将第n个盘子从a移到b
3. 将c中的n-1个盘子移到b,a作为辅助
#include <iostream>
using namespace std;
//将n个盘子从a移到b,c作为辅助
void hanoi(int n, char a, char b, char c)
{
if(n>0)
{
//将n-1个盘子从a移到c,b作为辅助
hanoi(n-1,a,c,b);
//将第n个盘子从a移到b
cout<<"Move dish "<<n<<" from pile "<<a<<" to "<<b<<endl;
//将c中的n-1个盘子移到b,a作为辅助
hanoi(n-1,c,b,a);
}
}
int main()
{
hanoi(64,'A','B','C');
cout<<endl;
return 0;
}