4782 - 2022苏州市小学信息学奥赛T2-汉诺塔
时间限制 : 1 秒
内存限制 : 256 MB
汉诺塔问题是源于印度一个古老传说的益智玩具。大梵天创造世
界的时候做了三根金刚石柱子,在一根柱子上从上往下按照从小到小
大顺序摞着 64 片黄金圆盘。大梵天命令婆罗门把圆盘从上面开始按
从小到大顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能
放大圆盘,在三根柱子之间一次只能移动一个圆盘。
下图是圆盘个数 n=3 时的汉诺塔,这三根柱子从左向右依次编号为 A,B,C,开始 3 个圆盘都是在 A 柱上,从上往下依次编号为 1,2,3。
最后目标是把这三个圆盘都移动到 C 柱,我们知道最少移动步数是 7步。
第 1 步:1 号圆盘从 A 移动到 C
第 2 步:2 号圆盘从 A 移动到 B
第 3 步:1 号圆盘从 C 移动到 B
第 4 步:3 号圆盘从 A 移动到 C
第 5 步:1 号圆盘从 B 移动到 A
第 6 步:2 号圆盘从 B 移动到 C
第 7 步:1 号圆盘从 A 移动到 C 更一般的,如果是 n 个圆盘,最少移动步数是 2^n-1。 现在你的任务是:告诉你圆盘数 n(这些盘初始都在 A 柱上,而且从上往下编号 1 到 n),问你把这 n 个圆盘移动到 C 柱上,在最少步数移动过程中第 x 步移动的圆盘的编号,以及它从哪个柱子移动到哪个柱子?
输入
总共两行,第一行 1 个整数 n。 第二行 1 个整数 x。
输出
总共两行,第一行 1 个整数,表示第 x 步移动圆盘的编号。 第二行两个字母,中间有一个空格,表示第 x 步是从第一个字母的柱字移到第二个字母的柱子
样例
输入
3 6
输出
2 B C
输入
45 12345678910
输出
2 C A
提示
对于 20%的数据:1≤n≤16; 对于 50%的数据:1≤n≤32; 对于 100%的数据:1≤n≤64,1≤x≤2^n-1。