什么是方法递归?
递归是一种算法,在程序设计语言中广泛应用
从形式上说:方法调用自身的形式称为方法递归
递归的形式
直接递归:方法调用自己
间接递归:方法调用其他方法,其他方法又回调方法自己
直接递归
运行之后会报错
错误太长可以使用ctrl+f
进行定位
搜索error
栈内存溢出的错误
间接方法递归
使用方法递归时需要注意的问题:
递归如果没有控制好终止,会出现递归死循环,导致栈内存溢出错误
递归算法的三要素:
递归的公式:f(n) = f(n-1) * n
递归的终结点:f(1)
递归的方向必须走向终结点
案例
猴子第一天摘下若干桃子,当即吃了一半,觉得好不过瘾,于是又多吃了一个
第二天又吃了前天剩余桃子数量的一半,觉得好不过瘾,于是又多吃了一个
以后每天都是吃前天剩余桃子数量的一半,觉得好不过瘾,又多吃了一个
等到第10天的时候发现桃子只有1个了。
需求:请问猴子第一天摘了多少个桃子?