1732: 汉诺塔

内存限制:128 MB 时间限制:1.000 S
评测方式:文本比较 命题人:
提交:4 解决:0

题目描述

汉诺塔是一个经典的数学谜题和递归算法案例,其起源可追溯至 19 世纪末的法国数学家爱德华・卢卡斯(Édouard Lucas)。该谜题不仅具有趣味性,更在计算机科学、数学逻辑和心理学等领域具有重要研究价值。

基本规则与结构

汉诺塔的基本构成和规则如下:
装置组成:包含 3 根垂直的柱子(通常标记为 A、B、C)和若干个大小不同的圆盘。
初始状态:所有圆盘按照从大到小的顺序堆叠在第一根柱子(起始柱,如 A)上,形成一个锥形。
目标状态:将所有圆盘从起始柱移动到目标柱(如 C)上,且保持同样的大小顺序。

移动规则:
每次只能移动一个圆盘。
任何时候,大盘子都不能放在小盘子上面。
移动过程中可借助第三根柱子(辅助柱,如 B)临时存放圆盘。

现在请打印在以上约束条件下,最少移动步数时,每一步的移动描述。

输入

一个整数n,即游戏开始时A柱上的圆盘数量。
其中最小的圆盘称为1,最大的圆盘称为n,以此类推。

输出

多行类似于
Move disk a from N to M
其中a代表圆盘名称,N代表移动前所在柱子名称,M代表移动后所在柱子名称。
答案是将所有A柱上圆盘移动到B柱的最少步数的方案,请按照正确顺序输出。

样例输入 复制

3

样例输出 复制

Move disk 1 from A to B
Move disk 2 from A to C
Move disk 1 from B to C
Move disk 3 from A to B
Move disk 1 from C to A
Move disk 2 from C to B
Move disk 1 from A to B

提示

$1 \leq n \leq 10 $

来源/分类