问题:有三个桩
左桩套几个越往上越小的原盘
如何从左桩移到右桩
要求:
一次只能挪一个盘;大盘不能放在小盘上,移动时可将用不到的空桩作为辅助桩
程序:逐次给出移盘时的原桩和目标桩
int main()
{
int n;
cout << "请输入圆盘数" << endl;
cin >> n;
void hanoi(int, int, int, int);
hanoi(n, 'A', 'B', 'C');
return 0;
}
void hanoi(int n, int p1, int p2, int p3)
{
void move(int, char, char);
if (n == 1)
{
move(n, p1, p3);
}
else
{
hanoi(n - 1, p1, p3, p2);
move(n, p1, p3);
hanoi(n - 1, p2, p1, p3);
}
}
void move(int n, char from, char to)
{
cout << n << "号盘从" << from << "到" << to << endl;
}