java——进阶语法——递归算法的概念和简单应用举例(代码片段)

叶不修233 叶不修233     2023-03-10     532

关键词:

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) 
				
			
		
	

运行结果:

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

注意:本专栏目前处于规划阶段,目前正在陆续实现中,11月正式推出,请稍作等待。《算法零基础100例》真正的零基础文章目录一、概念定义二、题目描述三、算法详解四、源码剖析五、推荐专栏六、粉丝福利... 查看详情

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

注意:本专栏目前处于规划阶段,目前正在陆续实现中,11月正式推出,请稍作等待。《算法零基础100例》真正的零基础文章目录一、概念定义二、题目描述三、算法详解四、源码剖析五、推荐专栏六、粉丝福利... 查看详情

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

注意:本专栏目前处于规划阶段,目前正在陆续实现中,11月正式推出,请稍作等待。《算法零基础100例》真正的零基础文章目录一、概念定义二、题目描述三、算法详解四、源码剖析五、推荐专栏六、粉丝福利... 查看详情

如何阅读源代码

...基准范例代码.100.简单的语言常常使用一系列遵循该语言语法结构的函数进行语法分析.101.推理互递归函数时,要基于底层概念的递归定义.102.尾递归调用等同于一个回到函数开始处的循环.103.将thro 查看详情

编译原理-第四章语法分析-4.6简单lr技术

...一、LR语言分析器模型与算法1.输入、输出、栈和方法2.LR语法分析表3.LR分析程序4.例例1:例2:二、LR语法分析算法1.LR语法分析算法的定义和概念定义:概念:2.LR语法分析算法的特点三、LR分析方法和LL分析方法的比较四、构造SLR... 查看详情

递归与斐波那契数列

    递归是程序设计中经常遇到的概念,一些数学问题经常能用递归的方式解决,并且在算法设计中也能用到递归。笔者在最近学习算法的过程中,遇到了一种可以用递归方式实现的算法——归并排序,在介绍这个... 查看详情

java简单递归算法,使其并行

我有一个简单的递归算法,该算法生成字符串的所有排列并计算通过一些条件的排列数。我想通过并行编程使其更高效,但是我不能将其与“forkJoinPool”一起使用(我不确定,但是不可能用分而治之的方式来实现它)。因此,我... 查看详情

递归:理解和应用(代码片段)

...方法就是直接进行遍历求和,我们看看能否考虑使用递归。递归算法是一种直接或者间接调用自身函数或者方法的算法。说简单了就是程序自身的调用。递归算法就是将原问题不断分解为规模缩小的子问题,然后递归调... 查看详情

递归与斐波那契数列

递归是程序设计中经常遇到的概念,一些数学问题经常能用递归的方式解决,并且在算法设计中也能用到递归。笔者在最近学习算法的过程中,遇到了一种可以用递归方式实现的算法——归并排序,在介绍这个算法之前,有必要... 查看详情

数据结构第九篇——栈与递归

栈还有一个重要应用是在程序设计中实现递归。递归是计算机科学和数学中一种解决问题的及其重要的方法。在数据结构中,可以用它来设计简单。易于理解的算法,特别是在一些具有递归定义的结构上设计算法。递归的概念一... 查看详情

java中方法的概念以及递归的讨论(代码片段)

...练习1)、汉诺塔问题2)、青蛙跳台阶3)、青蛙跳台阶(进阶)(递归->动态规划& 查看详情

java进阶数据库的简单理解mysql的安装和配置

文章目录前言数据库的基本概念数据(Data)数据库(DateBase)数据库的特点数据库的分类数据库管理系统(DMBS)MySQL的安装与配置启动与停止环境配置结语前言数据库作为程序员的必修课程,不会肯定是out的,如果你想成为一个... 查看详情

javascript中的回调函数和递归函数简单实际分析学习

Javascript 中的回调函数和递归函数简单实际分析学习 1 回调函数 所谓回调函数简单理解就是将一个函数做为参数传递给其他的函数供其使用。(只是在js中,因为其它的语言中有指针这个概念)。举一个简单的例... 查看详情

每日分享.

递归一、基本概念       递归算法是一种直接或者间接调用自身函数或者方法的算法。java递归算法是基于Java语言实现的递归算法。递归算法的实质是把问题分解成规模缩小的同类问题的子问题,然后递... 查看详情

简单说明什么是递归?什么情况会使用?并使用java实现一个简单的递归程序。

解答: 1)递归做为一种算法在程序设计语言中广泛应用.是指函数/过程/子程序在运行过程中直接或间接调用自身而产生的重入现象。 2)递归算法一般用于解决三类问题: a.数据的定义是按递归定义的。(Fibonacci(斐... 查看详情

java的递归算法

递归定义递归的一个简单定义:当函数直接或者间接调用自己时,则发生了递归。 递归的基本思想就是“自己调用自己”,一个使用递归技术的方法会直接或间接的调用自己递归构造包括两个部分: 定义递归头。... 查看详情

java的递归算法

递归定义递归的一个简单定义:当函数直接或者间接调用自己时,则发生了递归。 递归的基本思想就是“自己调用自己”,一个使用递归技术的方法会直接或间接的调用自己递归构造包括两个部分: 定义递归头。... 查看详情

递归和迭代算法[汉诺塔问题]

递归的基本概念:程序调用自身的编程技巧称为递归,是函数自己调用自己.一个函数在其定义中直接或间接调用自身的一种方法,它通常把一个大型的复杂的问题转化为一个与原问题相似的规模较小的问题来解决,可以极大的减少代... 查看详情