汉诺塔的问题考验的是对递归思想的理解。
建议找一张A4纸,将其中的关系一层层的写出来,然后从底层向回捋。
#include < iostream>
#include <string>
#include <stack>
using namespace std;
void Hnt(int n,char a,char b,char c)
{
if (n == 1)
{
cout << a << "-->" << c << "\n";
}
else
{
Hnt(n - 1, a, c, b);
cout << a << "-->" << c << "\n";
Hnt(n - 1, b, a, c);
}
}
int main()
{
int n;
cin >> n;
Hnt(n,'x','y','z');
return 0;
}