E. 经典递归问题_汉诺塔

    传统题 1000ms 16MiB

经典递归问题_汉诺塔

该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。

题目描述

汉诺塔(又称河内塔)问题是印度的古老传说:开天辟地的神勃拉玛在庙里留下三根金刚石棒,第一根套着64个圆形金片,最大的在最下方,其余一个比一个小依次叠放。众僧需要将金片从一根棒搬到另一根棒,规定可利用中间的棒辅助,且每次只能搬一个金片、大的金片不能放在小的金片上面,完成64个金片的移动需要极庞大的步数。

该传说演变为汉诺塔游戏,规则如下:

  1. 有三根杆子A、B、C,初始时A杆上有若干碟子,B、C杆为空;
  2. 每次只能移动一块碟子,且小碟子只能叠在大碟子的上面;
  3. 需将A杆上所有碟子全部移动到C杆上。

汉诺塔的破解思路为经典的递归思想,具体算法思路如下:

  1. 如果只有一个金片,直接把该金片从源杆子移动到目标杆子,操作结束;
  2. 如果有n个金片,先把前n-1个金片从源杆子移动到辅助杆子,再把第n个金片从源杆子移动到目标杆子,最后把辅助杆子上的n-1个金片移动到目标杆子。

请根据上述规则,输出将A杆上的N个碟子移动到C杆的最少移动步骤。

输入格式

一行一个整数N,表示A柱上摆放的碟子数量,满足0 < N ≤ 10。

输出格式

若干行,按移动顺序输出每一步的操作,每行格式为起始柱 To 目标柱,即完成移动的最少步骤。

样例输入

3

样例输出

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

ZJB_TEST

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