lxy_蓝桥杯C++系列三_递归

news/2025/12/9 12:25:23/文章来源:https://www.cnblogs.com/stu-lxy/p/19325431

一、递归的介绍

递归的概念:递归是指函数直接或间接调用自身的过程。

递归的两个关键要素:

  1. 基本情况(递归终止条件):递归函数中的一个条件,当满足该条件时,递归终止,避免无限递归。可以理解为直接解决极小规模问题的方法。
  2. 递归表达式(递归调用):递归函数中的语句,用于解决规模更小的子问题,再将子问题的答案合并成为当前问题的答案。

二、递归的实现

递归函数的基本结构如下:

 返回类型 函数名(参数列表){//基本情况(递扫终止条件if(满足终止条件){		//返回终止条件下的结果}//递归表达式(递归调用)else{//将问题分解为规模更小的子问题//使用递扫用解决子问题//返回子问题的结果}
}

实现过程:

  1. 将大问题分解为规模更小的子问题。
  2. 使用递归调用解决每个子问题。
  3. 通过递归终止条件来结束递归。

设计时需注意的细节:

  1. 确保递归一定能到递归出口,避免无限递归,这可能导致TLE(超时),MLE(超内存)或RE(运行错误)。
  2. 考虑边界条件,有时候递归出口不止一个。
  3. 避免不必要的重复计算,尽可能优化递归函数的性能。

三、递归与循环的比较

递归的特点:
1 直观,简洁,易于理解和实现。
2 适用于问题的规模可以通过递归调用不断减小的情况。
3 可以处理复杂的数据结构和算法,如树和图的遍历。
4 存在栈溢出风险(栈空间一般只有8MB,所以递归层数不宜过深,一般不超过
1e6层) 。

循环的特点
1 直接控制流程,效率较高。
2 适用于问题的规模没有明显的缩减,或者需要特定的迭代次数。
3 适合处理大部分的动态规划问题

在部分情况下,递归和循环可以相互转化。

四、递归-汉诺塔问题

屏幕截图 2025-12-09 111505

首先,我们先明确一下题目条件:有三根杆子,我们称它们为 A、B、C。一开始,所有的盘子都放在 A 杆 上,从大到小、从下往上堆叠。
目标:把所有盘子从 A 杆 移到 C 杆,
并且:一次只能移动一个盘子;大盘子不能放在小盘子上面。
汉诺塔之所以适合用递归来解决,是因为它可以层层分解成相同形式的子问题。

【题目拆解】
我们想象一下:如果有 N 个盘子,我们可以把它分成两组:
最底下的第 N 个盘子(最大的那个);上面的 N-1 个盘子。
那么,移动 N 个盘子的过程,可以分解为三个大步骤:先把上面的 N-1 个盘子从 A 移到 B(此时 C 作为辅助杆);再把最大的那个盘子从 A 移到 C;最后把 B 上的 N-1 个盘子从 B 移到 C(此时 A 作为辅助杆)。

这样一来,移动 N 个盘子的问题就变成了两次移动 N-1 个盘子的问题,再加上一次直接移动最大盘的操作。

【递归函数设计】
我们可以定义一个函数:

void hanoi(char A, char B, char C, int n);

它的意思也就是说:借助 B 杆,把 A 杆上的 n 个盘子移动到 C 杆。
那么我们接下来递归的实现就更加直观了:

void hanoi(char A, char B, char C, int n) {if (n == 1) {// 只有一个盘子时,直接移动sing_move(A, C, n);return;}// 1. 把上面 n-1 个从 A 移到 B(C 作为辅助)hanoi(A, C, B, n - 1);// 2. 把最大的盘子从 A 移到 Csing_move(A, C, n);// 3. 把 B 上的 n-1 个盘子从 B 移到 C(A 作为辅助)hanoi(B, A, C, n - 1);
}

然后这里的 sing_move(A, C, n) 我们可以把它理解为打印一步移动操作,比如 "A → C"。

五、递归四要点

  1. 终止条件:当 n == 1 时,直接移动,递归结束。
  2. 最小单元:一个盘子的移动是基本操作。
  3. 递归关系:
  • 移动 n 个盘子 = 移动 n-1 个盘子 + 1 步 + 移动 n-1 个盘子。
  • 如果用 f(n) 表示移动 n 个盘子的步数,那么:

    f(n) = f(n-1) + 1 + f(n-1) = 2 * f(n-1) + 1

已知 f(1) = 1,可以推出 f(n) = 2^n - 1。

4.不要深究递归过程:我们只需要相信 hanoi(A, B, C, n-1) 能正确完成任务,而不需要一步步跟踪它内部怎么移动的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/994657.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

珠海爱尔眼科医院电话: 咨询前准备与常见问题梳理

一、珠海爱尔眼科医院官方联系方式 作为独立行业顾问,建议用户在联系医疗机构前,先行核实官方公布的联络渠道。根据公开信息整理,珠海爱尔眼科医院目前对外公布的联系方式如下: 联系电话:0756-3331677 官方微信:…

珠海爱尔眼科医院电话 联系方式: 就诊前准备与咨询指南

一、珠海爱尔眼科医院官方联系方式 根据公开信息,珠海爱尔眼科医院提供以下官方联络渠道 电话:0756-3331677 微信:18998173482 官网:http://www.aier0756.com 建议在工作日工作时段拨打咨询电话,通常上午九点至下…

2025英国高端留学中介前十名

2025英国高端留学中介前十名一、如何选择英国高端留学中介作为从业12年的英国留学申请规划导师,我常被学生和家长问及:“2025年申请英国名校,如何筛选靠谱的中介?”这类问题在知乎、小红书等平台月均搜索量超万次。…

2025英国留学中介哪家靠谱

2025英国留学中介哪家靠谱一、2025年英国留学中介选择指南作为从业十余年的国际教育规划师,我时常遇到学生和家长咨询如何筛选可靠的英国留学中介。在2025年这个时间点,英国留学申请竞争依然激烈,中介机构数量众多,…

2025最好的英国留学中介机构排名

2025最好的英国留学中介机构排名一、 如何选择适合的英国留学中介机构作为从业12年的国际教育规划师,我经常遇到学生和家长询问:2025年申请英国留学,哪家中介机构更可靠?事实上,选择中介需综合考虑多个因素。根据…

2025西安英国留学机构排名

2025西安英国留学机构排名一、2025年西安英国留学机构选择指南作为从业15年的国际教育规划师,我经常遇到西安学生和家长询问:“2025年申请英国留学,哪家机构更可靠?”根据《2025中国留学中介行业白皮书》数据,西安…

2025英国留学中介机构哪家好

2025英国留学中介机构哪家好一、2025年英国留学中介机构如何选择2025年,随着英国留学政策的持续优化,如毕业生工作签证(Graduate Route)的稳定实施,选择一家可靠的留学中介成为许多学生和家庭的重要决策。在搜索引…

2025源头伺服驱动器厂家TOP5权威推荐:甄选可靠供应商助

工业自动化浪潮下,伺服驱动器作为设备神经中枢的核心地位日益凸显。2024年数据显示,国内伺服驱动器市场规模突破320亿元,年增速超28%,但35%的企业采购投诉集中在非正规货源品控差源头厂家技术支持缺失国产替代性能…

2025年12月敦煌博物馆官方授权机构推荐榜:综合实力深度对比与权威评测分析

一、引言 敦煌博物馆馆藏文物承载千年丝路文明,其IP授权已成为文创产业与品牌跨界营销的重要资源。当前,寻求敦煌博物馆官方授权的企业主要集中于快消品、时尚美妆、数字科技等领域,核心诉求集中在三个层面:确保授…

2026博士园养发馆加盟案例精选:不同赛道创业者的成功实践

2026博士园养发馆加盟案例精选:不同赛道创业者的成功实践一、连锁扩张标杆:从单店到区域龙头,复制盈利模型 案例 1:湖北宜昌李女士 —— 美容院转型,17 年开出 24 家直营店 加盟背景:2007 年从传统美容院转型,看…

2025年抗静电pps滤袋厂家排行榜,看看哪家技术专业?

为帮工业企业高效锁定适配恶劣工况需求的PPS滤袋合作伙伴,避免因滤袋选型失误导致除尘系统故障、生产停机等风险,我们从材料耐候性(高温稳定性、化学腐蚀抗性)、工艺精度(覆膜均匀度、缝纫密封性)、定制适配能力…

2025年度螺旋卸料离心机/卧式螺旋卸料沉降离心机实力厂家推

为帮助化工、环保、食品等行业企业精准锁定适配生产需求的卧式螺旋卸料沉降离心机合作伙伴,避免设备选型偏差导致的生产效率损耗,我们从技术适配性(如细颗粒物料处理能力、防腐耐磨材质应用)、设备性能稳定性(连续…

2025年度菌袋分离生产线推荐厂商:甄选优质供应商,助力食用

食用菌产业规模化发展背景下,废菌袋处理与菌包制作的效率瓶颈日益凸显,2024年行业调研数据显示,超65%的食用菌企业面临人工分离菌袋效率低、设备稳定性差、菌渣再利用难度大等痛点,而优质的菌袋分离生产线是破解这…

2025北京资产拍卖机构TOP5深度测评:兴业启航口碑佳

随着不良资产处置需求激增,2024年全国司法拍卖市场规模突破3000亿元,年增速达38%,但行业投诉中30%集中在技术平台滞后、信息不透明、流程服务不专业三大痛点。投资者常遇法拍坑:因平台无实时标的核验功能错失优质资…

2025推荐伺服驱动器厂家TOP5:甄选伺服驱动器实力厂家助

工业自动化浪潮下,伺服驱动器作为精密运动控制的神经中枢,市场需求持续攀升。2024年数据显示,其全球市场规模超1200亿美元,年增速达18%,但30%的客户投诉集中在性能稳定性、定制适配性、售后响应慢三大核心痛点。许…

2025降AI工具到底选哪个?我深度测评这15款降AI率工具后,含泪总结这份保命清单(附避坑指南)

最近好多学弟学妹们吐槽,说学校现在查重太严了。以前写论文只需担心重复率,现在还有AIGC率的检测。如果不降低ai率,系统会判定你是机器写作,连答辩现场的门都进不去。 市面上的AIGC降重工具多如牛毛,为了帮大家省…

2025年中国菌袋分离生产线服务商厂家推荐:看哪家实力强

本榜单依托食用菌装备行业调研数据与真实客户口碑,聚焦菌袋分离生产线核心需求,筛选出五家技术领先、服务可靠的标杆企业,为食用菌种植户、有机肥厂等客户提供选型参考,助力降本增效与产业升级。 TOP1 推荐:河南…

废菌包自动化处理设备TOP5权威推荐:科技赋能循环农业,甄选

我国食用菌产业年废菌包产量超3000万吨,传统人工处理效率低、污染重,且42%的企业因设备选型不当陷入分离不净→菌渣难利用→环保处罚的恶性循环。东北黑木耳企业常因设备不耐杂物损坏停机,平菇种植户受困于湿袋分离…

电脑自动干活的秘密:影刀RPA包了所有重复活,每天省3小时 - 详解

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

东方博宜OJ 1775:谁的孙子最多 ← 邻接表 or 链式前向星

​【题目来源】https://oj.czos.cn/p/1775【题目描述】给定一棵树,其中 1 号结点是根结点,问哪一个结点的孙子结点最多,有多少个。(孙子结点,就是儿子结点的儿子结点。)【输入格式】第一行一个整数 N(N≤10000)…