- count = 0
- def hannuota(n,src,dst,mid): #n 是圆盘数, src 是起始, dst 是目标, mid 是过度
- global count
- if n == 1:
- print('{}:{}->{}'.format(1,src,dst)) #当圆盘是 1 时, 从起始柱子移到目标柱子
- count += 1
- else:
- hannuota(n-1,src,mid,dst) #剩余的圆盘从 A 移到 B 柱子
- print('{}:{}->{}'.format(n,src,dst)) #最大的圆盘从 A 移到 C 柱子
- count += 1
- hannuota(n-1,mid,dst,src) #剩余的圆盘从 B 柱子到 C 柱子
- hannuota(3,'A','C','B')
- print(count)
- # 我现在理解的是 -> 设想有 1,2,3,4,5 个圆盘, 先把上面四个圆盘从 A 移到 B 柱子, 然后把 5 从 A 移到 C 柱子, 然后把 1234 从 B 移到 C 柱子, 然后把这些动作分解成 n=1.
- # 我也搞不懂, 好难啊!
来源: http://www.bubuko.com/infodetail-2579941.html