【问题描述】
汉诺塔问题大家都清楚,这里不再赘述。,完成如下功能:
有三个圆柱 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 made (begin, wend, oth, upn):
global count
if upn == 1:
count = 1 +count
print("[STEP%d] "%count,end='')
print("%c->"%begin,end='')
print(wend)
return
else:
made(begin, oth, wend, upn-1)
made(begin, wend, oth, 1)
made(oth, wend, begin, upn-1)
n = int(input())
made ('A', 'C', 'B', n)
递归题