思路
将N个盘子从A运到C 要解决将N-1个盘子从A运到B 再将剩下的一个盘子从A运到C
之后问题变成:将n-1个盘子从B运到C 那么需要将n-2 个盘子从B 运到A 将剩下的盘子从B运到C 再将n-2个盘子从A 运到C 依次递归
出界条件为n==1;
#include <iostream>
using namespace std;
void Hanoi(int x, char a, char b, char c)
{
if (x == 1)
cout << " move " << a << " to " << c << endl;
else
{
Hanoi(x - 1, a, c, b);
cout << " move " << a << " to " << b << endl;
Hanoi(x - 1, b, a, c);
}
}
int main()
{
Hanoi(3, 'A', 'B', 'C');
}