清华大学C语言教学课件(共16个PPT)第6个讲课讲稿.pptVIP

  • 6
  • 0
  • 约4.99千字
  • 约 41页
  • 2020-11-19 发布于浙江
  • 举报

清华大学C语言教学课件(共16个PPT)第6个讲课讲稿.ppt

清华大学C语言教学课件(共16个PPT)第6个;为了表述得直观清晰,我们定义两个结点:或结点与与结点。 图示的直观性与思维助力。 1、或结点;如果有多于2种取值,可用下图:;2、与结点;仍以求n!为例画出如下与或图;与结点可能有多个相关联的点,这时可描述为下图;下面我们以3!为例来画与或结点图,目的是体会递归的含义。;下面画出了调用和返回的递归示意图;从图可以想象: 欲求fact(3),先要求fact(2);要求fact(2)先求fact(1)。就象剥一颗圆白菜,从外向里,一层层剥下来,到了菜心,遇到1的阶乘,其值为1???到达了递归的边界。然后再用fact(n)=n*fact(n-1)这个普遍公式,从里向外倒推回去得到fact(n)的值。 为了把这个问题说得再透彻一点。我们画了如下的流程图:;10;为了形象地描述递归过程,将上图改画成下图;在这个图中“内层”与“外层”有着相同的结构。它们之间“你中有我,我中有你”,呈现相互依存的关系。 为了进一步讲清递归的概念,将递归与递推做一比较。仍以求阶乘为例。 递推是从已知的初始条件出发,逐次去求所需要的阶乘值。 如求3! 初始条件 fact(1) = 1 fact(2) = 2*fact(1) = 2 fact(3) = 3*fact(2) = 6 ;这相当于从菜心“推到”外层。而递归算法的出发点不放在初始条件上,而放在求

文档评论(0)

1亿VIP精品文档

相关文档