#DG07. 汉诺塔搬家
汉诺塔搬家
Background
有三根柱子 、、。 个从小到大的盘子一开始都叠在 柱上。
Description
请把这 个盘子全部搬到 柱,可以借助 柱。规则:
- 一次只能搬动一个盘子;
- 任何时候,大盘子都不能压在小盘子上面。
请输出搬动的每一步,最后再输出总共搬了多少步。
搬 个盘子的递归想法:先把上面 个搬到 ,再把最大的搬到 ,最后把 个从 搬到 。
Format
Input
一行一个整数 ()。
Output
前若干行,每行形如 A->C,表示把一个盘子从某根柱子搬到另一根柱子。
最后一行输出 共 x 步(其中 是搬动的总步数,注意“共”和“步”之间各有一个空格)。
Samples
3
A->C
A->B
C->B
A->C
B->A
B->C
A->C
共 7 步
Hint
总步数是 。这道题用循环几乎写不出来,递归却只要三步,是递归“魔法感”最强的一题。
Limitation
1s, 256MiB for each test case.