汉诺塔很容易理解

汉诺塔问题

说实话为了能够明确的理解原理 , 看了很多的博客 , 资料, 但是都是分析过程,然后给你一个 函数,说实话 这个函数, 有几个人一看就明白(大佬都不需要看的)

  1. 首先盘子的数量大于1, 才有必要移动盘子
  2. 直接看注释相信很多人都见过这个函数的,根据这个注释我相信很容易,自己就能写出这个函数
  3. 原理大家都知道就是递归,解决最小子问题,只是不明白具体函数参数的意义,以及执行流程
function hanio(n , a, b , c){
    if(n >= 1){
        hanio(n - 1, a, c, b);// 首先将 n-1个盘子从 a柱子借助c柱子移动到 b柱子
        moveby(a, c); // 然后将 a柱子上的 n盘子 从 a柱子 移动到c 柱子 (这就是最大的盘子了)
        hanio(n - 1, b, a, c); // 将 b柱子上的  n-1个盘子  全部从 b柱子  借助 a柱子 移动到c柱子  
    }
}

盗图一张
还不理解的话 那就 建议你看看这篇文章了
博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值