为了账号安全,请及时绑定邮箱和手机立即绑定

递归

标签:
Java

1.1 递归
递归,指在当前方法内调用自己的这种现象

public void method(){System.out.println(“递归的演示”);//在当前方法内调用自己method();}

1.2 递归练习
1.2.1 递归求5的阶乘
利用递归求出5!的结果
1.2.1.1 案例代码十一:

package com.itheima_01;/** 需求:求5的阶乘* 5! = 5 * 4 * 3 * 2 * 1;  //120* 5! = 5 * 4!;        //120* 4! = 4 * 3!;        //24* 3! = 3 * 2!;        //6* 2! = 2 * 1!;        //2* 1! = 1;     //1n! = n * (n - 1)!递归:把大问题拆成很多小问题,然后再把小问题拆成更多的小问题,当我们把更多小问题解决了,小问题也解决了随着小问题的解决,大问题也随之解决了在方法本身不断的调用方法自己递归注意事项:递归一定要有出口,内存溢出递归次数不宜过多,内存溢出public void show(int n) {//5//出口if(n == 0) {return;}show(n - 1);}从前有座山,山里有个庙,庙里有个老和尚,老和尚在给小和尚讲故事* 从前有座山,山里有个庙,庙里有个老和尚,老和尚在给小和尚讲故事* 从前有座山,山里有个庙,庙里有个老和尚,老和尚在给小和尚讲故事* 从前有座山,山里有个庙,庙里有个老和尚,老和尚在给小和尚讲故事* 从前有座山,山里有个庙,庙里有个老和尚,老和尚在给小和尚讲故事* ...** 学习编程...找工作...赚钱...娶媳妇...生娃娃学习编程...找工作...赚钱...娶媳妇...生娃娃学习编程...找工作...赚钱...娶媳妇...生娃娃学习编程...找工作...赚钱...娶媳妇...生娃娃学习编程...找工作...赚钱...娶媳妇...生娃娃...**/public class RecurrenceDemo {public static void main(String[] args) {int result = jC(5);System.out.println(result);//120}//求一个数的阶乘public static int jC(int n) {//必须要有出口if(n == 1) {return 1;}else {return n * jC(n - 1);}}}

1.2.2 斐波纳挈数列
有一对兔子,从出生后第3个月起每个月都生一对兔子,
小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,
问第二十个月的兔子对数为多少?
1.2.2.1 案例代码十二:

    package com.itheima_01;/* * 古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子, *      小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死, *               问第二十个月的兔子对数为多少? *  *  *  1 *  1 *  2 *  3 *  5 *  8 *  13 *  *  规律:除了第一个月和第二月以外,其余每个月都是前两个月之和 *  斐波那契列数 *  */public class RecurrenceDemo2 {public static void main(String[] args) {int result = method(20);//6765System.out.println(result);}public static int method(int n) {//如果是第一个月,只有一对兔子if(n == 1) {return 1;}//如果是第二个月,也只有一对兔子else if(n == 2) {return 1;}else {//如果不是第一个月和第二个月,则兔子的数量是前两个月之和return method(n - 1) + method(n - 2);}}}

点击查看更多内容
1人点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消