继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

递归

ios开发零基础入门
关注TA
已关注
手记 265
粉丝 20
获赞 110

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);}}}

打开App,阅读手记
1人推荐
发表评论
随时随地看视频慕课网APP