[Python]递归汉诺塔
Posted Alimy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[Python]递归汉诺塔相关的知识,希望对你有一定的参考价值。
move_count = 0 ; def hanoi(n,src,buffer,dst): ‘n:需移动的盘子个数,src:盘子原来的位置,buffer:盘子可临时使用的位置,dst:盘子的目标移动位置‘ global move_count; if n < 1: print(‘输入有误‘); return None; elif n==1: print(src + ‘----->‘ + dst); move_count += 1; else: hanoi(n-1,src,dst,buffer); hanoi(1,src,buffer,dst); hanoi(n-1,buffer,src,dst); move_count = 0 ; hanoi(5,‘A‘,‘B‘,‘C‘); print(‘move_steps = ‘,move_count);
print(hanoi.__doc__);
运行结果(Python3.7):
A----->C
A----->B
C----->B
A----->C
B----->A
B----->C
A----->C
A----->B
C----->B
C----->A
B----->A
C----->B
A----->C
A----->B
C----->B
A----->C
B----->A
B----->C
A----->C
B----->A
C----->B
C----->A
B----->A
B----->C
A----->C
A----->B
C----->B
A----->C
B----->A
B----->C
A----->C
move_steps = 31
n:需移动的盘子个数,src:盘子原来的位置,buffer:盘子可临时使用的位置,dst:盘子的目标移动位置
以上是关于[Python]递归汉诺塔的主要内容,如果未能解决你的问题,请参考以下文章