汉诺塔的规则:
1.有三根相邻的柱子,通常标记为A、B、C。
2.在A柱子上,从上到下按照大小顺序叠放着一系列的圆盘,通常是从小到大排列。
3.将所有的圆盘从A柱子移动到C柱子上,同时保持圆盘的大小顺序:从上到下圆盘越来越大。
4.在移动圆盘时,每次只能移动一个圆盘,且必须遵守小盘在上、大盘在下的规则。也就是说,在任何时候,都不能将一个大的圆盘放在一个小圆盘之上。
5.玩家可以使用B柱子作为临时存储圆盘的地方,但最终目标是将所有圆盘转移到C柱子上。
6. 移动圆盘直到所有的圆盘都被移动到C柱子上。
#include <iostream>
using namespace std;
void hanuota(int n, char A, char B, char C); //定义一个函数
int main()
{
int n;
cin >> n;
hanuota(n, 'A', 'B', 'C');
return 0;
}
void hanuota(int n,char A,char B,char C) //不是很好通过文字来表述,在草稿纸上进行演算比较直观
{
if (n == 1)cout << A << "->" << C << endl;
else {
hanuota(n - 1, B, C, A);
cout << A << "->" << C << endl;
hanuota(n - 1, B, A, C);
}
}