汉诺塔问题的递归求解算法

文章讲述了汉诺塔问题的描述,重点介绍了如何用递归方法解决该问题,包括基本思想:将大盘子分步移动,先转移n-1个盘子到中间柱,再移动最下层到目标柱,最后调整中间柱的盘子。
摘要由CSDN通过智能技术生成

汉诺塔问题的描述是:

        设有3根标号为A,B,C的柱子,在A柱上放着n个盘子,每一个都比下面的略小一点,要求把A柱上的盘子全部转移到C柱上,移动的规则是:

       (1)一次只能移动一个盘子;

       (2)移动过程中大盘子不能放在小盘子上面;

       (3)在移动过程中盘可以放在A,B,C的任意一个柱子上。

  问题分析:可以用递归方法求解n个盘子的汉诺塔问题

  基本思想:1个盘子的汉诺塔问题可以直接移动。n个盘子的汉诺塔问题可递归表示为,首先把上边的n-1个盘子从A柱移到B柱,然后把最下面的一个盘子从A柱移到C柱,最后把移到B柱的n-1个盘子再移到C柱

这样,汉诺塔问题的递归算法可设计如下:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值