📄 12_2_1.cpp
字号:
#include "TowerStack.h"
#include <iostream.h>
void Move(TowerStack *a, TowerStack *b)
{
b->Push(a->Pop());
cout << a->GetName() << "->" << b->GetName() << endl;
}
void Hanoi(int n, TowerStack *a, TowerStack *b, TowerStack *c)
{
if (n == 1)
Move(a, c);
else
{
Hanoi(n - 1, a, c, b);
Move(a, c);
Hanoi(n - 1, b, a, c);
}
}
void main()
{
while (true)
{
TowerStack a('A');
TowerStack b('B');
TowerStack c('C');
int n;
cout << "请输入碟子的个数:";
cin >> n;
int disks[MAX_SIZE];
for (int i = n - 1; i >= 0; i--)
{
disks[i] = i;
a.Push(&disks[i]);
}
try
{
Hanoi(n, &a, &b, &c);
}
catch (char *s)
{
cout << s << endl;
}
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -