C++编程递归-[下楼-跳马-分书].ppt.pptVIP

  • 35
  • 0
  • 约6.6千字
  • 约 39页
  • 2018-02-16 发布于江西
  • 举报
C编程递归-[下楼-跳马-分书].ppt

* * 说明: (1)试着给第 i 个人分书,先试分 0 号书,再分 1 号书,分 2 号书…,因此有一个与结点,让 j 表示书 j = 0, 1, 2, 3 , 4 。 (2)LP 为循环结构的循环体。 (3)条件 C 是由两部分“与”起来的。“第 i 个人喜欢 j 书,且 j 书尚未被分走”。满足这个条件是第 i 人能够得到 j 书的条件。 (4)如果不满足 C 条件,则什么也不做,这是直接可解结点。 * (5)满足C条件,做三件事。 sh1第一件事:将 j书分给 i。 用一个数组 take[ i ]=j, 记住书 j 给了 i , 同时记录j书已被选用,book[ j ] = 1。 * sh2第二件事:查看 i 是否为 4。 如果不为 4,表示尚未将所有 5 个人所要的书分完,这时应递归再试下一人,即Try( i+1 )。 如果等于4,则应先使方案数加一,然后输出第 n 个方案下的每个人所得之书。 * sh3第三件事:回溯。 让第 i 人退回 j 书,恢复 j 书尚未被选的标志,即 book[ j ]= 0。这是在已输出第 n 个方案之后,去寻找下一个分书方案所必需的。 (6)在有了上述的与或图之后,我们很容易写出一个程序框图。先看被调用函数 Try( i )

文档评论(0)

1亿VIP精品文档

相关文档