汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。大梵天创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上按照大小顺序摞着 6464 片黄金圆盘。大梵天命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘,如图所示:
现在请试着编写一个程序,对于一个有 nn 个盘子的汉诺塔,列举将这 nn 个盘子从柱子 A 移动到柱子 C 需要的所有移动步骤,每个步骤占一行。例如,将一个盘子从 A 移动到 C,即表示为:
input:
1
output:
A–>C
输入格式:
输入一个整数 n(1 \le n \le 5)n(1≤n≤5)。
输出格式:
输出若干行,表示所有移动步骤。
样例输入
3
样例输出
A–>C
A–>B
C–>B
A–>C
B–>A
B–>C
A–>C
代码:
%python
def hannuo(n,t1,t2,t3):
if n==1:
s = "-->"
seq = (t1,t3)
f= s.join(seq)
print (f)
return
hannuo(n-1,t1,t3,t2)
hannuo(1,t1,t2,t3)
hannuo(n-1,t2,t1,t3)
n = int(input())
hannuo(n,"A","B","C")