44| 汉诺塔问题
代码实现
#include <bits/stdc++.h> using namespace std; int n; char a, b, c; // 递归函数:把 n 个盘子从 src 杆,借助 tmp 杆,移动到 dst 杆 void dfs(int n, char src, char tmp, char dst) { if (n == 0) return; // 1. 先把 n-1 个盘子从 src 移到 tmp,借助 dst dfs(n-1, src, dst, tmp); // 2. 把第 n 个盘子从 src 移到 dst cout << src << "->" << n << "->" << dst << endl; // 3. 把 n-1 个盘子从 tmp 移到 dst,借助 src dfs(n-1, tmp, src, dst); } int main() { cin >> n >> a >> b >> c; // 题目要求:把 a 杆的 n 个盘子移到 b 杆,借助 c 杆 dfs(n, a, c, b); return 0; }