终于弄懂这个问题了55555,还是很有意思的,之前总是想的太复杂,没有找到规律,找到规律才是最重要的!就是有A,B,C三根柱子,然后把n块柱子上的东西看成n-1块,你就会发现,有一个无线循环的动作。
实现整块n-->C的思路,帮整块分成2部分。
n-1-->B
n-->C
n-1-->C
然而实现n-->C的条件就是
n-2-->B
n-1-->C
n-2-->C
#include "pch.h"
#include <iostream>
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;//把那块看成n-1和最后一块,无限递归
hanoi(n - 1, b, a, c);
}
}
int main()
{
int m;
cin >> m;
hanoi(m, 'A', 'B', 'C');
}