JAVA——进阶语法——递归算法的概念和简单应用举例
Posted 叶不修233
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了JAVA——进阶语法——递归算法的概念和简单应用举例相关的知识,希望对你有一定的参考价值。
JAVA——进阶语法——递归算法的概念和简单应用举例
一、概念
递归:方法调用自己的一种编程方式
注意:方法里必须有结束的途径
二、简单应用举例
1.定义一个方法求阶乘
(1)问题
例如:想要求5的阶乘,即54321的结果,可以使用递归算法实现
(2)代码及注释
public class Test1
public static void main(String[] args)
int n = fun(5);
System.out.println(n);
//定义一个方法求阶乘
public static int fun(int n)
if(n == 0)
return 1;
else
//使用递归,继续调用这个方法
return n*fun(n-1);
//第一次调用:return5*fun(4)
//第二次调用:return5*4*fun(3)
//第三次调用:return5*4*3*fun(2)
//第四次调用:return5*4*3*2*fun(1)
//第五次调用:return5*4*3*2*1*fun(0)
//第六次调用:return5*4*3*2*1*1=120
运行结果:
2.统计D盘总共有多少个文件
(1)问题
例如:想要得到D盘下总共有多少个文件(包含文件夹里的文件),可以使用递归算法实现
(2)代码及注释
import java.io.File;
public class Exam1
public static int count = 0;
public static void main(String[] args)
//新建一个D盘路径
File d = new File("D:\\\\");
fun(d);
System.out.println(count);
//定义一个方法统计文件数量,接收传入参数是一个File对象
public static void fun(File file)
//定义一个File类型的列表,存储这个File对象下的File对象
File[] list = file.listFiles();
//遍历这个File对象列表,如果是文件,就count+1,如果是文件夹,就继续调用这个fun方法
for(File f:list)
try
if(f.isFile())
count++;
else
fun(f);
catch(Exception e)
运行结果:
以上是关于JAVA——进阶语法——递归算法的概念和简单应用举例的主要内容,如果未能解决你的问题,请参考以下文章
网易云课堂_C语言程序设计进阶_第五周:递归与简单算法:递归搜索二分搜索简单排序