母题:汉诺塔怎么移
三根柱子 A、B、C,A 上有 n 个盘子,大的在下。每次移一个,大盘不能压小盘,要全部移到 C。递归的想法:
- 把上面 n−1 个从 A 借助 C 移到 B;
- 把最大的那个从 A 移到 C;
- 把 B 上的 n−1 个借助 A 移到 C。
hanoi(n, from, via, to) 表示把 n 个盘从 from 借助 via 移到 to。输入 n,每行输出一步。例如输入 2,输出:
A->B
A->C
B->C
三根柱子 A、B、C,A 上有 n 个盘子,大的在下。每次移一个,大盘不能压小盘,要全部移到 C。递归的想法:
hanoi(n, from, via, to) 表示把 n 个盘从 from 借助 via 移到 to。输入 n,每行输出一步。例如输入 2,输出:
A->B
A->C
B->C