后来又在网上搜了写递归函数的资料,说的是当函数直接调用自己时就发生了递归。
因为递归在生活中并不直观,不是很符合日常的思维模式,我们的日常思维模式是一步接一步的,所以我们更容易接受迭代这个概念。最初开始学习递归时,我总是被困在不停的回溯,不停按照迭代思路摸索递归过程,后来在网上看了一些博文,其实递归并不需要这样验证,递归的重点是找到递归关系与递归的终止条件,将大问题不断地转化成小的问题,在达到终止条件的小问题得到解决后回溯解决每一层问题。如果能够很好的解决递归关系与终止条件那么递归问题就可以得到解决。
解决递归问题中有时一眼看起来并没有思路,按照上课分析问题的套路就是在所有情况中找到一个具有一般属性的情况,分析这种情况如何能够转换成更小问题,再在最小问题的情况下找到边界条件就基本可以写出递归函数,当然多看一些题对于思路的开拓也是有好处的,如何实现代码,如何简化代码都是可以锻炼出来的,所以应当找时间多A些题。
以上就是我对于递归函数的认识。