

CSP - J 2024
一、
程序完善

第六题:

第七题:

第八题:

第九题:

第十题:

二、
参考答案
第六题答案:B
第七题答案:B
第八题答案:B
第九题答案:B
第十题答案:C

汉诺塔直观示意图
* src :起始柱(圆盘一开始所在的柱子) * tmp : 辅助柱子(用来临时存放圆盘) * tgt : 目标柱子(圆盘最终要去的柱子)


三、核心逻辑讲解
汉诺塔问题的本质是分治思想:把 “移动 n 个圆盘” 这个大问题,拆成 3 个小问题来解决:
把上面的 n-1 个圆盘,先移到辅助柱子
这一步相当于把 “n-1 个圆盘从 A 移到 B” 的子问题,交给递归自己解决。此时目标柱子 C 变成了临时辅助柱,所以调用 dfs(i-1, src, tgt, tmp)。

2.把最底下的最大圆盘,直接移到目标柱子
这一步很简单,因为上面的圆盘都已经移走了,最大的圆盘可以直接从 A 挪到 C,不会违反规则。

3.把 n-1 个圆盘,从辅助柱子移到目标柱子
这一步是把 “n-1 个圆盘从 B 移到 C” 的子问题,交给递归自己解决。此时原来的源柱子 A 变成了临时辅助柱,所以调用dfs(i-1, tmp, src, tgt)。
完整程序


商业合作
1.定制版教具、竞赛版教具。
2.國際機器人教育發展協會师资培训
3.开展青少年机器人等级评测授权服务
4.四个教学点,任意选择

夜雨聆风