递归函数(Python为例)
家电修理 2023-07-16 19:18www.caominkang.com电器维修
以廖雪峰的汉诺塔移动为例子 编写move(n, a, b, c)函数
该函数接收参数n表示3个柱子A、B、C中第1个柱子A的盘子数量,然后打印出把所有盘子从A借助B移动到C的方法
函数如下
def move(n, a, b, c):
if n == 1:
print(a, ‘–>’, c)
else:
move(n - 1, a, c, b)
print(a, ‘–>’, c)
move(n - 1, b, a, c)
必须明确,move(n, x, z, y)函数意义是把n个盘子从x移动到y,忽略中间过程
那么move(n - 1, x, z, y)函数意义就是把n-1个盘子从x移动到y
第一步,把n-1个盘子从A放到B
第二步,把最大的盘子放到C
第三步,把n-1个盘子从B放到C
完成任务,中间过程忽略
def move(n, a, b, c): if n == 1: #只有一个盘子 print(a, '-->', c) else: #有多个盘子 move(n - 1, a, c, b) #第一步,把n-1个盘子从A放到B print(a, '-->', c) #第二步,把最大的盘子放到C move(n - 1, b, a, c) #第三步,把n-1个盘子从B放到C使用递归函数时,必须先明确函数意义,再把复杂问题分步化简为简单的几步 使用递归函数的前提是步骤可复现,即可用同一个函数实现不同步骤
上一篇:网络连接错误错误代码103怎么解决?
下一篇:笔记本显卡温度多少正常?
空调维修
- 海信电视维修站 海信电视维修站点
- 格兰仕空调售后电话 格兰仕空调维修售后服务电
- 家电售后服务 家电售后服务流程
- 华扬太阳能维修 华扬太阳能维修收费标准表
- 三菱电机空调维修 三菱电机空调维修费用高吗
- 美的燃气灶维修 美的燃气灶维修收费标准明细
- 科龙空调售后服务 科龙空调售后服务网点
- 华帝热水器维修 华帝热水器维修常见故障
- 康泉热水器维修 康泉热水器维修故障
- 华凌冰箱维修电话 华凌冰箱维修点电话
- 海尔维修站 海尔维修站点地址在哪里
- 北京海信空调维修 北京海信空调售后服务
- 科龙空调维修 科龙空调维修故障
- 皇明太阳能售后 皇明太阳能售后维修点
- 海信冰箱售后服务 海信冰箱售后服务热线电话
- 海尔热水器服务热线