递归
一个函数直接或间接调用自己本身,这种函数叫递归函数。
--------------------------------
递归算法是把问题转化为规模缩小了的同类问题的子问题。然后递归调用函数(或过程)来表示问题的解。
递归算法解决问题的特点:
--------------------------------
(1) 递归就是在过程或函数里调用自身。
(2) 在使用递归策略时,必须有一个明确的递归结束条件,称为递归出口。
(3) 递归算法解题通常显得很简洁,但递归算法解题的运行效率较低。一般不提倡用递归算法设计程序。
(4) 在递归调用的过程当中系统为每一层的返回点、局部量等开辟了栈来存储。递归次数过多容易造成栈溢出等。
递归示意图
--------------------------
递归实例解释
-------------------------------------
如上图解释:
假设你在一个楼层,但是你不知道你在哪层,于是你想下问下一层是几层,但是下一层的也不知道自己住的是几层,于是再想下询问,知道最下面的一层回答为1层之后,依次向上每次递加1.最后你就等到你自己的下面一层的层数,再加1就是你自己的层数。
递归过程中,你只需要在递归回来后,直接调用递归回来的结果进行累计(处理)即可。