既然是函数调用,就有一个不可动摇的原则:所有为调用的函数都会创建一个副本,分别服务于调用,不受其他函数的影响,说白了还是个函数调用,递归函数通常用于解决结构的自相似性问题,因此,递归有两个基本要素:(1)边界条件:确定递归何时结束,也称为递归退出,递归表示一个函数直接或间接调用描述自身,这个调用方法叫做递归调用。

用 递归算法解决问题

1、用 递归算法解决问题

递归函数通常用于解决结构的自相似性问题。所谓结构自相似,是指构成原问题的子问题在结构上与原问题相似,可以用相似的方式求解。具体来说,整个问题的解可以分为两部分:第一部分是一些有直接解的特例;第二部分与原问题类似,但规模较小。递归其实就是把一个不能或者解决不了的大问题变成一个或者几个小问题,再把这些小问题进一步分解成更小的问题,直到每个小问题都可以直接解决。因此,递归有两个基本要素:(1)边界条件:确定递归何时结束,也称为递归退出。(2) 递归 Mode:一个大问题如何分解成小问题,也叫递归 aspect。递归只有当函数具有这两个元素时,它才能在有限的计算次数后得到结果。递归表示一个函数直接或间接调用描述自身。这个调用方法叫做递归 调用。说白了还是个函数调用。既然是函数调用,就有一个不可动摇的原则:所有为调用的函数都会创建一个副本,分别服务于调用,不受其他函数的影响。

2、C语言的一个 递归问题

所以,你有一个抽屉,把盘子放在里面。第一个盘子里有x,如果x/2>0,你就要在这个盘子上再放一个盘子,里面有x/2,只要满足条件,也就是盘子里有大于2的东西,你就要用上一个盘子一半的东西再加一个盘子。直到最后,你终于加了一个盘子,放了一个1进去,这个时候就不用加盘了,开始一个一个的取盘。这叫回归,每拿走一个盘子,里面的东西就要出口。如果你在顶部放一个1,你将导出一个1,如果前一盘曝光了,你会发现是3,导出来,然后再扔这个盘,下一盘就曝光了,是6。再扔一次,然后就没盘了,所以递归就结束了,我终于解释完了。递归只要考虑到两个步骤之间的关系和边界,学多了就明白这个了,不用理解那么多,国外原著说你要在递归建立信任。


文章TAG:递归  调用  有三大  教案  要素  递归调用教案  
下一篇