一、思路:
if(n == 1) {
直接从A移到C柱子上;
}
if(n > 1) {
先把A柱子上的前n-1个盘子(看作一个整体)从A借助C移到B;
接着将A柱子上的第n个盘子直接移动到C柱子上;
再将B柱子上的n-1个盘子借助A移动到C;
}
二、实现程序:
#include <iostream>
using namespace std;
// 汉诺塔问题
void HanoiTower(int n, char A, char B, char C) {
if(n == 1)
cout << n << " " << A << "->" << C << endl;
else {
HanoiTower(n-1, A, C, B); // 将A中前n-1个盘子借助C移到B
cout &