- 汉诺塔问题
答案
- @ 2026-9-19 16:47:41
#include<bits/stdc++.h>
using namespace std;
int n;
char a, b, c;
void f(int n, char a, char b, char c) {
if (n == 1) {
cout << a << "->" << n << "->" << b << endl;
return;
}
f(n - 1, a, c, b); //将n-1个盘子从a移动到c(借助b)
cout << a << "->" << n << "->" << b << endl;
f(n - 1, c, b, a); //将n-1个盘子从c移动到b(借助a)
}
int main() {
cin >> n >> a >> b >> c;
//将n个盘子从a移动到b(借助c)
f(n, a, b, c);
return 0;
}
0 条评论
目前还没有评论...
信息
- ID
- 207
- 时间
- ms
- 内存
- MiB
- 难度
- 2
- 标签
- 递交数
- 312
- 已通过
- 96
- 上传者