1.方法又在方法中调用了自己
2.分类:
直接递归:自己的方法调用自己
间接递归:自己的方法调用别的方法,别的方法调用自己
3.递归的三要素:
递归的终结点(指的是完成递归算法结束的条件)
递归的公式(利用自己的数学知识写出递归的公式)
递归的方向:必须走向终结点
4.案例:猴子有若干个桃子,每天吃桃子总数的一半并且多一个,等到第五天发现最后只剩下一个桃子,问猴子原来一共有多少个桃子
分析:
终结点:第五天之后只有一个桃子说明结束条件为f(5)=1;
公式:前一天桃子数量为f(x)则第二天数量则为f(x+1),根据题意得出他们之间的关系为f(x+1)=f(x)-f(x)/2-1,整理可得f(x)=2f(x+1)+2,根据第五天桃子的数量递归求得第一天桃子的数量
则对应的代码为
public class RecursionDemo {
public static void main