*PPT下载/xiazai/递归算法递归算法在生活中,算法思想能让我们从很多相似的问题中找到一个通用的解决办法,就像用一个“万能钥匙”解决同一类问题。在设计算法的过程中,我们可以学会更清楚地思考和推理问题。经典算法种类繁多,除了经典的二分查找、排序算法外,还有递推算法、递归算法、分治算法、贪心策略等,这些算法不仅可以帮助我们提高计算效率,解决实际问题,还能促进科学研究和技术创新,在各个领域都有着广泛的应用。你知道吗?什么是递归算法设计递归函数递归解决棋盘格放麦粒问题目录*存够了购买指纹锁的钱,小清带着存钱罐早早地来到专卖店购买心仪的指纹锁。他发现商家贴出了购买指纹锁限量赠送100套电子猫眼的活动,在活动现场排了好多人,小清也加入了排队大军中。小清想知道目前所排的位置能否获得赠送电子猫眼的资格。大家都在排队,也没人有空去清点人数。小清想知道前面有多少人在排队,你有什么好办法吗?环环相扣的递归算法01小清不能离开队伍,要知道前面有多少人,只能问前面的人,而他前面的人说:“我也不知道前面排了多少人,怎么办呢?”小清开动脑筋想了一个办法:请大家传话下去“你是第几个?”直到传到第一人,然后再依次返回“我=我前面的人数+1”的消息,这样大家都知道前面有多少人在排队了。探索小清的办法可行吗?我们也来试一试。排队的人们,都在问同一个问题:。传递消息的终止条件是:。返回消息的时候,人数计算方法是:。小清的方法中,大家一直在重复做一件事:不断地询问前面的人,直到问至第一人,询问停止,然后将前面的人数加上自己再传给后面的人。递归算法的实现—递归函数递归函数是指在定义中调用自身的函数。递归函数用来解决可以分解为相似小问题的任务,通过逐步缩小问题规模,直到达到一个简单的“基准情况”或“终止条件”,停止调用自身并返回结果。递归要有两个要素,结束条件与递推关系。在编程中,函数是一段独立的代码,用来执行特定的任务或计算。可以把函数想象成一个“小机器”或“工具箱”,我们可以给它提供一些输入(称为参数),它会根据设定好的步骤进行处理,最后返回一个结果(称为返回值)。函数有以下几个关键特点。(1)封装性:函数将一段代码封装起来,方便重复使用,避免重复写同样的代码。(2)输入参数:有些函数需要输入参数。不同的输入会让函数产生不同的输出。(3)输出结果:函数执行完任务后,通常会产生一个结果,这个结果可以传递给程序的其他部分。使用函数的好处是让代码更简洁,组织更清晰,便于理解和维护。函数统计人数函数(n):如果n=1:返回1否则返回统计人数函数(n-1)+1函数名为“统计人数函数”,有一个传入参数nn-1时,就是消息传到了队伍第一人,函数返回1并终止执行否则,返回调用自身“统计人数函数”,不同的是,传入参数减少了1,并且将结果加102试着代入函数的参数,比如n=3,说一说函数是怎么运行的?调用自身的时候n为什么要减1,返回的结果又为什么要加1?经典的递归算法—棋盘里的麦粒这个问题可以用很多方法来解答,之前学习的递推算法以及本课中的递归算法都可以解决这个问题。递归无疑是最简洁的方法,我们一起来设计递归算法,解决棋盘里的麦粒问题吧。西萨宰相要求国王往棋盘格里放麦粒的规则是:每一小格都比前一小格加一倍,如下表所示。棋盘格123……64麦粒124……规律1前一格×2前一格×2探索你能填写图中的图形化编程递归函数调用自身算法中黑色圆形内的数字与计算符号吗?用图形化编程软件搭建递归计算棋盘格麦粒问题的函数,并代入参数64,计算出麦粒的数量。如果一颗麦粒的重量是0.03克,国王一共要给宰相多少千克的麦粒呢?谢谢观看********PPT下载/xiazai/递归算法************