Python:递归实现汉诺塔

这篇博客介绍了如何使用Python递归算法解决汉诺塔问题。内容包括问题背景、解题思路和步骤,以及代码实现。文章还提及了Python中的格式化输出和全局变量的概念。
摘要由CSDN通过智能技术生成

汉诺塔(hanoi):

汉诺塔(又称河内塔)问题是源于印度一个古老传说的益智玩具。

有三根柱子,其中一根从下往上按照大小顺序放着若干个圆盘,要求将这些圆盘移动到另一根柱子上,并且小盘上不能放在大盘之上,每次只能移动一个圆盘。
在这里插入图片描述
思路:

假设三个柱子分别是source(起始),tmp(中间),dest(目的)

通过递归实现,分三步:

  1. 将n-1个盘子借助dest从source移动到tmp
  2. 将第n个盘子从source移动到dest
  3. 将tmp上的n-1个盘子借助source移动到dest

代码实现:

#通过递归实现,分三步:
#1、将n-1个盘子借助dest从source移动到tmp
#2、将第n个盘子从source移动到dest
#3、将tmp上的n-1个盘子借助source移动到dest

#定义一个计数器,统计总共移动的步数
count =
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值