Java基础-递归相关知识点和用法

递归

在方法中,调用方法本身的现象叫递归

注意事项

1、递归一定要有出口,否则就是死递归

2、递归对次数不能太多,否则容易内存溢出

3、构造方法不能递归使用

分析:

5! = 1 * 2 * 3 * 4 * 5

5! = 5 * 4!

4! = 4 * 3!

3! = 3 * 2!

2! = 2 * 1!

1! = 1

在这里插入图片描述

使用递归思想求5的阶乘

在这里插入图片描述

运行流程图

在这里插入图片描述

兔子问题(斐波那契数列)

有一对兔子,从出生后的第三个月起,每个月都生一对小兔子,小兔子长到三个月后,每个月又生一对兔子,假如兔子不死,第二十个月兔子的对数是多少?

分析:

第一个月 : 1对

第二个月 : 1对

第三个月 : 2对

第四个月 : 3对

第五个月 : 5对

第六个月 : 8对

1,1,2,3,5,8,。。。。。。

规律:

1、从第三个月开始,每个月对对数,是前两个月个数对和。

2、第一个月,和第二个月对对数是已知对,都是一对。

数组实现:

在这里插入图片描述

变量的变化实现

假如相邻两个月的兔子数量是a,b

第一个相邻的数据 a = 1,b = 1;

第二个相邻的数据 a = 1,b = 2;

第三个相邻的数据 a = 2,b = 3;

第四个相邻的数据 a = 3,b = 5;

第五个相邻的数据 a = 5,b = 8;

下一次的a是以前的b,下一次的b是以前的a+b;

在这里插入图片描述

递归实现

返回值类型 int

参数列表 int n

出口条件:第一个月是1,第二个月是1

规律:第三个开始是前两个月的和

在这里插入图片描述

递归实现输出指定目录下java结尾的文件的绝对路径

需求:在控制台输出某目录下java结尾的文件的绝对路径

思路:

1、封装目录

2、获取该目录下所有的文件或文件夹的File类的对象数组

3、遍历数组,判断是文件还是文件夹

4、如果是文件夹,回到第二步;如果是文件,判断是否是.java结尾,并输出绝对路径

在这里插入图片描述

递归删除带内容的目录

在这里插入图片描述
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/NONAME999/article/details/84900150
今日推荐