6高级语言程序设计.pptVIP

  • 2
  • 0
  • 约4.8千字
  • 约 41页
  • 2017-11-17 发布于河南
  • 举报
6高级语言程序设计

计算机程序设计基础 第六讲 递归 3. 先看简单情况,河中无柱子:S=0, Jump(0,y) 当y=1时,Jump(0,1)=2; 说明:河中有一片荷叶,可以过两只青蛙,起始时L上有两只青蛙,1#在2#上面。 第一步:1# 跳到荷叶上; 第二步:2# 从L直接跳至R上; 第三步:1# 再从荷叶跳至R上。 如下图: * * 递归算法在可计算性理论中占有重要地位,它是算法设计的有力工具,对于拓展编程思路非常有用。就递归算法而言并不涉及高深数学知识,只不过初学者要建立起递归概念不十分容易。 我们先从一个最简单的例子导入。 递归及其实现 用递归算法求n! 定义:函数 fact(n) = n! fact(n-1) = (n-1)! 则有 fact(n) = n fact(n-1) 已知 fact(1) = 1 为了表述得直观清晰,我们定义两个结点:或结点与与结点。 图示的直观性与思维助力。 1、或结点 A为“或结点”,A依不同条件会有两种不同的取值B或C。结点用 表示。 如果有多于2种取值,可用下图: 条件为Z1, Z2, …,Zn,取值为B或C,…或G 2、与结点 与结点要涂黑,相关联的B与C之间要用弧线连起来。 A为与结点,A的最终取值为C结点的值,但为了求得C的值,得先求出B结点的值

文档评论(0)

1亿VIP精品文档

相关文档