递归实现汉诺塔之最精华讲解,python实现

汉诺塔,属于递归的应用范畴,递归不多说了,觉得递归难的建议以较浅层的递归去深刻理解,比如2层,3层递归
闲话不多说,直接上代码。

代码如下,可以先阅读后面的体会心得再理解代码,然后自我实现。

汉诺塔python实现

代码如上,可以先阅读体会心得再理解代码,然后自我实现。

---- 体会心得 ----

汉诺塔,前三层(最多 2^3-1=7步操作)是能够想象的,到第四层(15步)就比较复杂了,所以,我在深刻理解前三层的基础上,得出一定的结论,当原始柱子只剩一个盘子时,就一定是直接a–>c,此时,a其他的盘子(n-1个)一定是在b上。那么同理,在移动b上的全部盘子,设为m个(原a的n-1个)时,需要把b的m-1个(原a的n-2个),全部放到a上,把b的第m个(原a的n-1个)放到c上,依次同理,直至a或b只剩最后一个,直接放到c,结束。

注:参数的 ‘顺序’和‘位置’ 很重要,(n,a,b,c),每次调用要清楚,层数(n),从哪搬运(a),借助谁(b),搬运到哪(c)。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值