博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
第3章 递归
阅读量:6502 次
发布时间:2019-06-24

本文共 1749 字,大约阅读时间需要 5 分钟。

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

转载于:https://blog.51cto.com/13517854/2103881

你可能感兴趣的文章
jre与jdk的区别
查看>>
全景图的种类
查看>>
git 维护
查看>>
jfinal框架下使用c3P0连接池连接sql server 2008
查看>>
Jfinal Generator 不需要生成带某个前缀的表名数组的方法
查看>>
struts2中使用标签操作静态方法等
查看>>
熬夜写了一个小游戏,向SpaceX聊表敬意
查看>>
身份证工具类
查看>>
JPA增删改查,
查看>>
apache 开启 gzip 压缩服务
查看>>
python mysql
查看>>
开源 免费 java CMS - FreeCMS1.5-建站向导
查看>>
Selenium的延迟等待
查看>>
jquery 1.6以上版本 全选
查看>>
AppCan 学习
查看>>
flask框架
查看>>
《疯狂Java讲义》学习笔记(十)异常处理
查看>>
Lua(Codea) 中 table.insert 越界错误原因分析
查看>>
ELK 5.x日志分析 (二) Elasticserach 5.2 安装
查看>>
sbt配置nexus仓库
查看>>