递归程序的设计.docx

1递归的定义 子程序(或函数)直接调用自己或通过一系列调 用语句间接调用自己,是一种描述问题和解决问 题的基本方法。 2递归的基本思想 问题分解:把一个不能或不好解决的大问题转化 为一个或几个小问题,再把这些小问题进一步分 解成更小的小问题,直至每个小问题都可以直接 解决。 3递归的要素 递归边界条件:确定递归到何时终止,也称 为递归出口; ⑵递归模式:大问题是如何分解为小问题的, 也称另递询命。 例1阶乘函数 ? | 1 当 n = l 时 L n * (n - 1)! 当 nl 时 递归算法 int fact (int n ) { if (n == 0 ) return 1; else return n * fact (n-1); } 栈的应用举例一递归 求解阶乘n!的过程 返回24返回6 返回24 返回6 返回2 返回1 f - V 递归调用 回归求值 递归过程与递归工作栈 ■递归过程在实现时,需要自己调用自己。 层层向下递归,返回次序正好相反: 递归调用 ? n! = (n-1)! = (n-2)!㈡ ?= 1!=1 返回次序 递归函数的内部执行过程 运行开始时,首先为递归调用建立一个工作栈, 其结构包括 ; 每次执行递归调用之前,把递归函数的值参和局 部变量的当前值以及调用后的返回地址压栈; 每次递归调用结束后,将栈顶元素出栈,使相应 的值参和局部变量恢复为调用前的值,

文档评论(0)

1亿VIP精品文档

相关文档