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——进阶语法——递归算法的概念和简单应用举例的主要内容,如果未能解决你的问题,请参考以下文章

《算法零基础100例》(第79例) 递归进阶(下)

《算法零基础100例》(第78例) 递归进阶(中)

《算法零基础100例》(第77例) 递归进阶(上)

网易云课堂_C语言程序设计进阶_第五周:递归与简单算法:递归搜索二分搜索简单排序

网易云课堂_C语言程序设计进阶_第五周:递归与简单算法:递归搜索二分搜索简单排序_1逆序输出的数列

递归的概念