编辑代码

#include <iostream>
 
using namespace std;
 
void Move(int n, char A, char B, char C)
{
	if (n == 1)
	{
		//圆盘只有一个时,只需将其从A塔移到C塔
		cout << "move " << n << " from " << A << " to " << C << endl;
	}
	else
	{
		Move(n - 1, A, C, B);//递归,把A塔上编号1~n-1的圆盘移到B上,以C为辅助塔
		cout << "move " << n << " from " << A << " to " << C << endl;//把A塔上编号为n的圆盘移到C上
		Move(n - 1, B, A, C);//递归,把B塔上编号1~n-1的圆盘移到C上,以A为辅助塔
	}
}
 
void Hanoi(int n)
{
	if (n <= 0)
		return;
	Move(n, 'A', 'B', 'C');
}
 
int main()
{
	Hanoi(3);
	return 0;
}