汉诺塔问题递归求解(python)
汉诺塔(Hanoi)问题
古代有一个梵塔,塔内有三个座x,y,z坛,x座上有64个盘子,盘子大小不等,大的在下,小的在上。有一个和尚想把这64个盘子从x座移到z座,但每次只能允许移动一个盘子,并且在移动过程中,3个座上的盘子始终保持大盘在下,小盘在上。在移动过程中可以借助y座进行过渡。
解
def hanoi(n,x,y,z):
'递归从x把所有盘子借助y移到z上'
global count
if n == 1: # 直接完成的状态
print(x,'-->',z) # 表示移动
count += 1
else: # 需要分解,分析方法是先把三个步骤每一个都看成“大的完整的”一步,思想上不要再拆下去