传统题 1000ms 128MiB

汉诺塔

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

汉诺塔(又称河内塔)问题是印度的一个古老的传说。开天辟地的神勃拉玛在一个庙里留下了三根金刚石的棒,第一根上面套着 6464 个圆的金片,最大的一个在底下,其余一个比一个小,依次叠上去,庙里的众僧不倦地把它们一个个地从这根棒搬到另一根棒上,规定可利用中间的一根棒作为帮助,但每次只能搬一个,而且大的不能放在小的上面。面对庞大的数字 1844674407370955161518446744073709551615,看来,众僧们耗尽毕生精力也不可能完成金片的移动。 后来,这个传说就演变为汉诺塔游戏:

  • 有三根杆子 A,B,CA,B,CAA 杆上有若干碟子。
  • 每次移动一块碟子,小的只能叠在大的上面。
  • 把所有碟子从 AA 杆全部移到 CC 杆上。

聪明机智勇敢帅气阳光开朗的Q老师研究发现,汉诺塔的破解很简单,就是按照移动规则向一个方向移动金片。

33 阶汉诺塔的移动:AC,AB,CB,AC,BA,BC,ACA→C,A→B,C→B,A→C,B→A,B→C,A→C

此外,汉诺塔问题也是程序设计中的经典递归问题。

现在请你实现它。

输入格式

一个整数 NN,表示 AA 柱上有 NN 个碟子。

输出格式

若干行,即移动的最少步骤

3
A To C
A To B
C To B
A To C
B To A
B To C
A To C

数据范围

1N201 \le N \le 20

递归

未认领
状态
已结束
题目
10
开始时间
2026-7-6 0:00
截止时间
2026-7-31 23:59
可延期
24 小时