第三十天(递归)
# 先将n-1个移动到缓冲,再将最大一个移到目标
def hanota(n, A, B, C):
'''
将A中n个移到C,以B作为缓冲
'''
# 若只有一个,直接移入
if n == 1:
C.append(A.pop())
return
# 将A中n-1个移到B,以C作为缓冲
hanota(n-1, A, C, B)
# 将A中剩余最大一个,移到C
C.append(A.pop())
# 将B中n-1个移到C,以A作为缓冲
hanota(n-1, B, A, C)
hanota(len(A), A, B, C)最后更新于