第28课递归算法及程序实现.ppt

第28课 递归算法及程序实现  1.汉诺塔问题。相传古代东方有一座寺庙,庙内有三根座桩,第一根座桩上叠有一摞64个中心带孔、直径各不相同的圆盘片,这些圆盘片叠成塔状,即越上面的盘片的直径越小。要把这64个盘片从第一根座桩搬到第三根座桩上,搬动的规则如下: (1)一次只能从有盘片的座桩上取走一个盘片; (2)被取走的盘片必须马上放到另一根座桩上; (3)任何一根座桩上如果有一个以上盘片,则这些盘片必须呈直径上小下大的塔状。 需要搬动多少次才能把64个盘片从第一根座桩搬到第三根座桩上?  2.用递归算法计算n的阶乘n!。 新课引入 相传古代东方有一座寺庙,庙内有三根座桩,第一根座桩上叠有一摞64个中心带孔、直径各不相同的圆盘片,这些圆盘片叠成塔状,即越上面的盘片的直径越小。要把这64个盘片从第一根座桩搬到第三根座桩上,搬动的规则如下: (1)一次只能从有盘片的座桩上取走一个盘片; (2)被取走的盘片必须马上放到另一根座桩上; (3)任何一根座桩上如果有一个以上盘片,则这些盘片必须呈直径上小下大的塔状。 把“从一根座桩上取走一个盘片,放到另一根座桩上”说成是“搬动一次”。 问题提出 需要搬动多少次才能把64个盘片从第一根座桩搬到第三根座桩上? 先将问题缩小化,尝试2个盘、3个盘、4个盘、5个盘等的搬动过程。 Hanoi游戏(点击上图运行体验

文档评论(0)

1亿VIP精品文档

相关文档