PPT7-6函数的递归调用.pdf
《PPT7-6函数的递归调用.pdf》由会员分享,可在线阅读,更多相关《PPT7-6函数的递归调用.pdf(10页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、函数的递归调用 递归 在函数调用的过程中,直接或间接 地调用该函数本身,称为函数的递归调 用。 直接递归 f函数 调用f函数 f1函数 调用f2函数 f2函数 调用f1函数 间接递归 递归的条件 直接递归 f函数 调用f函数 f1函数 调用f2函数 f2函数 调用f1函数 间接递归 无限制的递归调用会让 系统崩溃,而得不到最终结 果,而无最终结果的算法也 是无效的。 递归的条件 递归条件,即何时递归。 递归结束条件,即何时终止递归。 直接递归 f函数 调用f函数 f1函数 调用f2函数 f2函数 调用f1函数 间接递归 何时使用递归 当一个较大的问题规模可以由解 决一个较小的问题规模得到时,可
2、以 使用递归求解。一个难以解决的大问 题(n),可以通过比该问题的规模 稍小的问题(n-1)求解得到,从而 解决全局。 实例7.4递归求解n! 接收任务 解题思路:求n!可以通过计算1 2 3 n 2 n 1 n得 到,这种方法简单,容易理解,也易 于实现。 接收任务分析任务 解题思路:但是如何使用递归求解该 问题呢?在递归求解的过程中,必须 确定两个条件,一个是递归条件,一 个是递归结束条件。 接收任务分析任务 ! = ! = = , ! 核心代码接收任务分析任务 int factorial(int n) if(n=0|n=1) return 1; else return n*factori
3、al(n-1); int main(int argc, char *argv) int n; int result; printf(请输入数据n,求n!:n); scanf(n=%d, result = factorial(n); printf(n! = %dn,result); return 0; main函数factorial(n)factorial(n)factorial(n) 求5!求5*4!求4*3! factorial(n) 求3*2! 输出结果返回120返回24返回6返回2 5432 factorial(n) 求2*1! 返回1 1 解决问题 递归调用时,一定要谨记递归条件和递归结束条件。能 够将这两个条件填充完整,递归方可实现。同学们,你们学 会了吗?
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 森林经营规划
限制150内