Java递归算法

Java递归算法

ID:43485191

大小:413.55 KB

页数:8页

时间:2019-10-07

Java递归算法_第1页
Java递归算法_第2页
Java递归算法_第3页
Java递归算法_第4页
Java递归算法_第5页
资源描述:

《Java递归算法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、递归算法阿尔法瑟从前有座山,山上有座庙,庙里有一个老和尚和一个小和尚,老和尚正在给小和尚讲故事。讲的是什么故事呢?他说:从前有座山,山上有座庙,庙里有...如同老和尚给小和尚讲故事一样,故事本身包含了故事自己--自己调用自己递归的概念:定义一个方法时,出现本方法调用本方法的过程,称之为递归递归的特点:1.必然有一个边界条件2.使用递归代码往往更加简洁,可读性强什么时候使用递归?•有许多数学公式、数列等的定义是递归的。例如,求n!和1+2+3+....+n。•例如n的阶乘和n的累加定义:1ifn=1f(n)f(n)f(n1)else1ifn=1f(n

2、)f(n)f(n1)else普通实现方式与递归实现方式的比较:两个算法均用来计算1+2+3+...n的和,左边使用递归算法实现,右边是一般的方法,通过比较发现:1.递归算法有一个边界条件n=1,当满足n为1,返回自身2.递归算法的返回值有两种情况,满足边界条件返回特定值,不满足边界条件,返回自身调用自身的形式3.非递归算法没有明确指出边界条件,但是利用了for循环,隐式地传达了边界,i<=n时不再相加4.非递归算法还建立了局部变量sum,用来作为方法的返回值经典递归算法实例:--斐波那契数列问题:兔子出生以后两个月就能生小兔,如果每月生一次且恰好生一对

3、小兔(雌雄各一只),且出生的兔子都能成活。试问:由1对小兔开始,一年后共有多少对兔子,两年后共有多少对兔子?思路:在第0月有1对兔子;第1月也只有1对兔子;在第2月这对兔子生了1对小兔,共有两对兔子;在第3月,老兔子又生了1对小兔,共有3对兔子;在第4个月,老兔子和第2个月出生的小兔各生了一对小兔,共有5对兔子;在第5个月,第3个月的3对兔子各生了一对小兔,共有8对兔子;在第6个月,第4个月的5对兔子各生了一对小兔,共有13对兔子……如此类推经典递归算法实例:--斐波那契数列不难得到兔子总数量和经过月数之间的关系如下表:而斐波那契数列就用来描述一组具有兔子总数规

4、律的数列,它具有的特征是从第3个数起,每个数都是前两个数的和!JAVA中斐波那契数列的实现完结:让老和尚停止讲故事!我PPT都要讲完了,老和尚还在喋喋不休的讲故事,终于老和尚60岁了讲不动了...

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。