以三个时为例,有下图过程
递归出口是当a上只有一个圆盘时,直接将圆盘从a移到c。
代码如下
#include <bits/stdc++.h>
using namespace std;
void hanoi(int n, char a, char b, char c)
{
if (n == 1)
cout << a << " -> " << c << endl;
else {
hanoi(n - 1, a, c, b);
cout << a << " -> " << c << endl;
hanoi(n - 1, b, a, c);
}
}
int main()
{
int n;
cin >> n;
hanoi(n, 'a', 'b', 'c');
}