python中汉诺塔的递归算法详解
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python中汉诺塔的递归算法详解相关的知识,希望对你有一定的参考价值。
请编写move(n, a, b, c)
函数,它接收参数n
,表示3个柱子A、B、C中第1个柱子A的盘子数量,然后打印出把所有盘子从A借助B移动到C的方法,例如:
def move(n, a, b, c):
pass
答案:
def move(n,a,b,c):
if n==1:
print(a,‘->‘,c)
else:
move(n-1,a,c,b)
move(1,a,b,c)
move(n-1,b,a,c)
理解的关键不需要管每一步是怎么解决的。重点是实现你的目的。我们可以这么理解:move(n,起点,缓冲区,终点)
我们的步骤是把上面n-1个盘子搬到缓冲区move(n-1,a,c,b),
然后把最大的盘子搬到终点去move(1,a,b,c) 。
最后缓存区变成了起点,起点变成了缓冲区。move(n-1,b,a,c)
以上是关于python中汉诺塔的递归算法详解的主要内容,如果未能解决你的问题,请参考以下文章