递归函数:调用自身的函数。在函数体内部直接或间接地调用自身。
递归函数的理解:
1.递归其实就是把问题传递下去,直到找到某个确切的结果后,再一步一步回归初始问题本身的过程。
2.举例:我想知道张三的身高,张三没直接告诉我他多高,直说比张四高1cm;我只好去问张四,张四说比张五高1cm;张五比张六高1cm;我一直问下去,张七,张八,张九,终于知道了张十是170cm。这个过程就是把问题传递下去的过程!并找到了一个结果,张十是170cm。
3.那么我最初的问题,是想知道张三身高,需要再把问题回归,张十。。。到张三。
递归机制:
1.调用自身,相同的处理逻辑。
但是起点或者状态不同。问的都是年龄(逻辑),问的是不同的人(起点、状态不同)。
2.独立机制。函数之间需要独立,不能嵌套,导致不能到达出口。就像我问张三年龄,张三说比张四大一岁,张四不能说比张三小一岁,这样就会陷入死循环,不能到达出口。
虽然递归函数执行的代码一样。
3.需要一个出口。