【问题描述】
汉诺塔问题大家都清楚,这里不再赘述。,完成如下功能:
有三个圆柱 A、B、C,初始时 A 上有 N 个圆盘,N 由用户输入给出,最终移动到圆柱 C 上。
每次移动步骤的表达方式示例如下:[STEP 10] A->C。其中,STEP 是步骤序号,宽度为 4 个字符,右对齐。
请编写代码,获得输入 N 后,输出汉诺塔移动的步骤。
【输入形式】
【输出形式】
【样例输入】
输入:"3"
【样例输出】
输出:"
[STEP 1] A->C
[STEP 2] A->B
[STEP 3] C->B
[STEP 4] A->C
[STEP 5] B->A
[STEP 6] B->C
[STEP 7] A->C
"
count = 0
def Hanoi(n, a, b, c):
if n==1:
Move(a, b)
else:
Hanoi(n-1, a, c, b)
Move(a, b)
Hanoi(n-1, c, b, a)
def Move(a, b):
global count
count+=1
print("[STEP{:>4}]".format(count),"%c->%c"%(a,b))
n = int(input())
Hanoi(n,'A','C','B')