关于递归函数:

函数内部调用自身的函数。
以n阶乘为例:
f(n) = n ! = 1 x 2 x 3 x 4 x...x(n-1)x(n) = n x (n-1) !
def factorial(n):
if n==1:
return 1
return n * f(n-1)
//调用过程如下:
>>f(5) >>5 * f(4) >>5 * 4 * f(3) >>5 * 4 * 3 * f(2) >>5 * 4 * 3 * 2 * f(1) >>5 * 4 * 3 * 2 * 1 >>120
从上面的例子可以直观得看到递归函数在不断的调用自己的函数,直到n==1(函数出口)。
关于河内塔:
规则:
1. 三根柱子,A,B, C
2. A 柱子上的盘子从小到大 排列,最上面的是最小的,最下面的是最大的。
3. 将A上的盘子移动到C上,移动过程中始终保持,最大的在下面,最小的在上面。
假设 A 柱子上有一个盘子,可以直接从A移动到C完成:
A --> C
假设 A 柱子上有两个盘子,需要借助B,移动到C:
A --> B
A --> C
B --> C
将A 最上面的盘(2-1)移动到B,然后将A中剩下一块盘移动到C,最后将B中的盘移动到C
假设 A 柱子上有三个盘子,需要借助B移动A 上面的两个盘,然后将A剩下最大的盘移动到C,最后将B中的盘移动到C。
A --> C
A --> B
C --> B //这三步将A上前两个盘子移动到B
A --> C //这一步将A上最大的盘子移动到C
B --> A
B --> C
A --> C //后面这三步将B上的盘子移动到C
原理是将 A 上的(n-1) 块盘移动到B,然后A中剩下的,也是最大的一块盘移动到C,最后将B上(n-1)块盘移动到C。
def Hanoi(n , a, b, c):
if n==1:
print (" Hanoi Tower move", a, "-->", c)
return
Hanoi(n-1, a, c, b)
Hanoi(1, a, b, c)
Hanoi(n-1, b, a, c)
print (" When there is 1 ring on A")
Hanoi(1, 'A', 'B', 'C')
print (" When there are 2 rings on A")
Hanoi(2, 'A', 'B', 'C')
print (" When there are 3 rings on A")
Hanoi(3, 'A', 'B', 'C')
print(" When there are 4 rings on A")
Hanoi(4, 'A', 'B', 'C')
以上所述是小编给大家介绍的python递归函数和河内塔问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!
# python递归函数
# python河内塔
# 浅谈Python中的可迭代对象、迭代器、For循环工作机制、生成器
# Python进阶之递归函数的用法及其示例
# Python递归函数定义与用法示例
# Python 递归函数详解及实例
# 讲解Python中的递归函数
# python实现斐波那契递归函数的方法
# 提升Python效率之使用循环机制代替递归函数
# 递归
# 河内
# 上有
# 的是
# 后将
# 小编
# 这三
# 自己的
# 在此
# 给大家
# 可以直接
# 为例
# 在上面
# 所述
# 给我留言
# 始终保持
# 从小到大
# 感谢大家
# 过程中
# 三根
相关文章:
如何在阿里云虚拟主机上快速搭建个人网站?
如何在Golang中实现微服务服务拆分_Golang微服务拆分与接口管理方法
大型企业网站制作流程,做网站需要注册公司吗?
娃派WAP自助建站:免费模板+移动优化,快速打造专业网站
建站之星如何取消后台验证码生成?
网站制作的步骤包括,正确网址格式怎么写?
如何快速上传建站程序避免常见错误?
如何在IIS管理器中快速创建并配置网站?
如何用免费手机建站系统零基础打造专业网站?
建站之星Pro快速搭建教程:模板选择与功能配置指南
c++23 std::expected怎么用 c++优雅处理函数错误返回【详解】
宝塔新建站点为何无法访问?如何排查?
ui设计制作网站有哪些,手机UI设计网址吗?
制作网站怎么制作,*游戏网站怎么搭建?
c# Task.ConfigureAwait(true) 在什么场景下是必须的
韩国服务器如何优化跨境访问实现高效连接?
想学网站制作怎么学,建立一个网站要花费多少?
如何登录建站主机?访问步骤全解析
用v-html解决Vue.js渲染中html标签不被解析的问题
网站制作公司排行榜,四大门户网站排名?
建站之星24小时客服电话如何获取?
如何通过虚拟主机快速完成网站搭建?
微信网站制作公司有哪些,民生银行办理公司开户怎么在微信网页上查询进度?
广东企业建站网站优化与SEO营销核心策略指南
孙琪峥织梦建站教程如何优化数据库安全?
公众号网站制作网页,微信公众号怎么制作?
b2c电商网站制作流程,b2c水平综合的电商平台?
建站之星图片链接生成指南:自助建站与智能设计教程
行程制作网站有哪些,第三方机票电子行程单怎么开?
建站主机服务器选购指南:轻量应用与VPS配置解析
网站制作公司排行榜,抖音怎样做个人官方网站
高性价比服务器租赁——企业级配置与24小时运维服务
广州网站设计制作一条龙,广州巨网网络科技有限公司是干什么的?
建站之星安装路径如何正确选择及配置?
如何在Golang中引入测试模块_Golang测试包导入与使用实践
免费网站制作模板下载,除了易企秀之外还有什么H5平台可以制作H5长页面,最好是免费的?
建站主机助手选型指南:2025年热门推荐与高效部署技巧
如何在云虚拟主机上快速搭建个人网站?
网站制作报价单模板图片,小松挖机官方网站报价?
如何通过西部建站助手安装IIS服务器?
如何高效完成独享虚拟主机建站?
网站制作费用多少钱,一个网站的运营,需要哪些费用?
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
在线教育网站制作平台,山西立德教育官网?
建站之星后台密码遗忘?如何快速找回?
C++如何使用std::optional?(处理可选值)
建站之星导航菜单设置与功能模块配置全攻略
如何在阿里云ECS服务器部署织梦CMS网站?
,网页ppt怎么弄成自己的ppt?
建站VPS能否同时实现高效与安全翻墙?
*请认真填写需求信息,我们会在24小时内与您取得联系。