汉诺塔每次完成最后一步前,假定有n个塔,最大的塔必须其他
def hanoi(n,src,dist,via):
if n>1:
hanoi(n-1,src,via,dist)
print(src+'->'+dist)
hanoi(n-1,via,dist,src)
else:
print(src+'->'+dist)
n=int(input("请输入汉诺塔个数:"))
hanoi(n,'a','b','c')
n-1个小塔完成堆叠才能移动,而倒数第二个塔,需要n-2个塔完成堆叠,以此类推,就需要递归。
代码如下