第8讲模块程序设计下.pptxVIP

  • 0
  • 0
  • 约1.57千字
  • 约 50页
  • 2022-07-12 发布于北京
  • 举报
第8讲 模块程序设计-函数(下) 黄永峰 2015.11.9;重要通知;主要内容;8.1 递归调用算法;递推法:从初值出发,根据新值与旧值之间关系,通过循环计算得出最后值,因此,一般通过循环控制结构来实现(循环的终值是最后值);8.1 递归调用算法 -回顾程序执行过程;8.1 递归调用算法;8.1 递归调用算法;8.1 递归调用算法;8.1 递归调用算法;8.1 递归调用算法;8.1递归算法;8.1递归算法;8.1递归算法;8.1递归算法;8.1递归算法;下面是函数调用和返回的递归示意图(体会函数调用的断点压栈保护和恢复的概念);从图可以想象:欲求fact(3),先要求fact(2);要求fact(2)先求fact(1)。就象剥一颗圆白菜,从外向里,一层层剥下来,到了菜心,遇到1的阶乘,其值为1,到达了递归的边界。然后再用fact(n) =n*fact(n-1)这个普遍公式,从里向外倒推回去得到fact(n)的值。 为了把这个问题说得再透彻一点。我们画了如下的流程图:;8.1递归算法;8.1递归算法;8.1递归算法;8.1递归算法;【例】反向输出一个整数。 非数值问题不容易像数值问题那样能得出一个边界条件和递归函数关系,但思路是相同的。分析方法: ①简化问题:设要输出的正整数只有1位,则“反向输出”问题可简化为输出1位整数。(边界条件) ②对大于10的正整数,逻辑上可分为两

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档