U473927 汉诺塔问题(hanoi)
题目背景
大样例见[附件](https://www.luogu.com.cn/fe/api/problem/downloadAttachment/gkijfvc3)。
------------
汉诺塔($Tower$ $of$ $Hanoi$),又称河内塔,是一个源于印度古老传说的益智玩具。
大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着$64$片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘,婆罗门必须一刻不停地搬动着圆盘。他说,在这件事完成时宇宙会在一瞬间$ \color{red} 毁灭$。
题目描述
汉诺塔($Hanoi$)是一个古老的游戏,它的游戏规则如下:
1. 有三根相邻的柱子,标号为$A,B,C$。
2. 游戏开始时,$A$柱子从上往下按金字塔状叠放着$n$个不同大小的圆盘,编号依次为 $1 , 2 , 3 , ... , n$ ,现在要把所有盘子一个一个移动到柱子$C$上。
3. 每次移动同一根柱子上都不能出现大盘子在小盘子上方。
现在给你$n$个盘子,请你计算出$n$个盘子从$A$柱子移动到$C$柱子上,最少需要多少步,并且输出每一步的移动过程。
输入格式
共一行:一个数$n$,表示$A$柱子上盘子的数量。
输出格式
第一行输出一个数,表示最少需要的步数,该结果需要对大质数 $10^9+7$ 取模。
接下来,每一行输出一次步骤。(格式为 `k a->b` ,表示第 $k$ 个盘子从 $a$ 柱子移动到 $b$ 柱子)
说明/提示
对于 $100\%$ 的数据 , $2 \le n \le 64$。