1 条题解
-
0
#include #include using namespace std;
// 移动次数计数器 int step = 0;
// 递归移动函数 void hanoi(int n, char from, char to, char aux) { if (n == 1) { step++; cout << "Move " << from << " to " << to << endl; return; } // 将 n-1 个盘子从 from 移到 aux,借助 to hanoi(n - 1, from, aux, to); // 将第 n 个盘子从 from 移到 to step++; cout << "Move " << from << " to " << to << endl; // 将 n-1 个盘子从 aux 移到 to,借助 from hanoi(n - 1, aux, to, from); }
int main() { int n; cin >> n;
// 输出最少移动次数:2^n - 1 cout << (int)pow(2, n) - 1 << endl; // 执行移动 hanoi(n, 'A', 'C', 'B'); return 0;}
- 1
信息
- ID
- 14522
- 时间
- 1000ms
- 内存
- 256MiB
- 难度
- 10
- 标签
- 递交数
- 3
- 已通过
- 2
- 上传者