汉诺塔
题号:NC306749
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

\hspace{15pt}有三根杆子 A,B,CA 杆上有 n 个穿孔圆盘,盘的尺寸由下到上依次变小。请你按下列规则,使用尽可能少的移动次数将所有圆盘移至 C 杆:
\hspace{23pt} \bullet每次只能移动一个圆盘。
\hspace{23pt} \bullet大盘不能叠在小盘上面。

输入描述:

\hspace{15pt}第一行输入一个整数 n\left(1 \leqq n \leqq 20 \right)

输出描述:

\hspace{15pt}对于每次操作,新起一行。输出两个字母  代表移动  杆顶端的盘子至  杆。
示例1

输入

复制
2

输出

复制
A B
A C
B C
示例2

输入

复制
3

输出

复制
A C
A B
C B
A C
B A
B C
A C