`

Java中递归

阅读更多
1. Java中递归

所谓递归(Recursion),就是方法调用自身。
对于递归来说,一定有一个出口,让递归结束,只有这样才能保证不出现死循环。

使用递归计算阶乘:
public class Test {
    public static void main(String[] args) {
        System.out.println(compute(6));
    }
    public static int compute(int number) {
        if (1 == number) {
            return 1;
        } else {
            return number * compute(number - 1);
        }
    }
}


2. 斐波那契数列

1、1、2、3、5、8、13、21、34、……
在数学上,斐波纳契数列以如下被以递推的方法定义:
F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)
public class Fibonacci {
    public static void main(String[] args) {
        System.out.println(compute(6));
    }
    public static int compute(int n) {
        if (1 == n || 2 == n) {
            return 1;
        } else {
            return compute(n - 1) + compute(n - 2);
        }
    }
}


3. 递归的使用

用递归方式删除一个非空的目录中的文件。
file.delete()删除目录时必须保证目录是空的。
import java.io.File;
public class FileTest9 {
    public static void deleteAll(File file){
        if (file.isFile() || file.list().length == 0) {
            file.delete();
        }
        else {
            File[] files = file.listFiles();
            for(File f : files){
                deleteAll(f);
                f.delete();
            }
        }
    }
    public static void main(String[] args) {
        deleteAll(new File("c:\\abc"));
    }
}
分享到:
评论

相关推荐

    java中递归用法详解

    java中递归的用法比较单一,但是用途比较重要,在开发中经常用到,熟练掌握递归的用法有利于程序代码的快速合理编写

    Java中递归逻辑循环调用解压zip里面所有的压缩包

    Java中递归逻辑循环调用解压zip里面所有的压缩包 Java中递归逻辑循环调用解压zip里面所有的压缩包

    Java SE程序 递归 Java SE程序 递归

    Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE程序 递归Java SE...

    java递归实现删除文件夹

    在Java编程中,删除文件夹及其子文件夹通常涉及到递归操作,因为文件夹可能包含多个层级的子文件和子文件夹。递归是一种在函数内部调用自身的方法,用于解决具有相同结构的问题。以下是对Java中递归实现删除文件夹这...

    [Java算法设计]-递归阶乘.java

    该资源提供了Java中递归阶乘的全面指南。文档中涵盖了递归阶乘的基本概念,包括如何使用递归计算阶乘以及如何在Java中实现递归阶乘。此外,文档还包括一个逐步指南,介绍如何在Java中实现递归阶乘的代码,包括详细的...

    Java中递归、循环的优劣分析

    在编程语言中,Java提供了两种基本的控制流程结构——递归和循环,它们在解决问题时各有优劣。本文主要分析了Java中递归和循环的特点,并通过实例代码展示了它们的执行效率。 首先,我们来看看递归。递归是一种函数...

    关于java递归文件,以及检索特定文件

    在给定的标题“关于java递归文件,以及检索特定文件”中,我们可以推测这篇博文可能探讨了如何使用Java递归算法遍历文件系统,寻找特定类型的文件。下面将详细解释这个主题。 首先,让我们理解递归的概念。递归是一...

    用Java集合递归实现通用树Tree

    在Java编程中,树是一种非常重要的数据结构,它在很多领域都有着广泛的应用,例如文件系统、数据库索引、编译器语法分析等。本资源主要关注如何使用Java集合框架来递归实现一个通用的树结构,即`Tree`。下面我们将...

    java 用递归实现字符串反转

    在Java编程语言中,递归是一种常用的方法来解决许多问题,特别是那些可以通过分解成更小子问题来解决的问题。本文将详细介绍如何使用递归来实现字符串的反转。 #### 一、递归基础概念 递归是指在函数或方法的定义...

    java递归无限层级树

    通过学习和理解这些代码,你可以深入理解如何使用Java递归处理无限层级的树结构,这对于开发涉及树形数据的系统非常有用。 总之,使用Java递归实现无限层级树的关键在于定义好树节点类,明确生成新节点的条件,以及...

    Java中递归原理实例分析

    Java中的递归是一种强大的编程技巧,它涉及到一个函数或方法在执行过程中调用自身来解决问题。递归在解决复杂问题时特别有用,因为它能够将大问题分解为一系列更小的相似子问题。以下是对Java中递归原理的详细分析:...

    java递归树型结构通用数据库

    在Java递归树型结构通用数据库中,使用递归树型结构来存储部门信息,部门之间存在父子关系,每个部门都有一个唯一的ID,父部门的ID作为子部门的Parent ID,通过这种方式实现树型结构的部门管理。 2. 部门管理接口...

    ava中的递归的资源

    在Java编程语言中,递归是一种强大的编程技术,它指的是函数或方法调用自身的过程。递归可以帮助我们解决复杂的问题,通过将大问题分解为更小的子问题来简化问题解决。本文将深入探讨Java中递归的概念、工作原理、优...

    java实现递归调用

    在Java中,递归常用于解决需要重复执行相同任务但每次处理的数据不同的问题,例如遍历树形结构、计算阶乘、求解斐波那契数列等。本篇文章将详细介绍如何使用Java实现递归调用来遍历一棵树,并结合SQL代码进行说明。 ...

    java 中的经典递归

    ### Java中的经典递归 #### 一、递归的基本概念 递归是一种常见的算法思想,在计算机科学中占有重要地位。简单来说,递归是指在函数的定义或执行过程中调用自身的方法。递归通常用于解决那些可以分解为相似子问题...

    Java数组排序总结(冒泡_选择_插入_希尔)__递归算法的复杂度

    在编程领域,数组排序是基础且重要的操作,尤其是在Java中。本篇文章将深入探讨四种基本的排序算法:冒泡排序、选择排序、插入排序以及希尔排序,并结合递归算法的复杂度进行分析。这些排序算法在不同的场景下有不同...

    java程序的递归算法

    ### Java程序中的递归算法:列出目录下的所有子目录和文件 #### 一、递归算法简介 递归是计算机科学中的一个重要概念,它是指在解决问题的过程中直接或间接地调用自身的一种方法。递归算法通常用于解决可以分解为...

    java 递归问题文档

    在Java中,递归尤其重要,因为它可以帮助我们解决许多复杂的问题,如树遍历、图遍历、分治策略等。这篇“java 递归问题文档”很可能是对递归的深入讲解和实例分析,旨在帮助初学者理解和掌握这一关键技能。 首先,...

    Java递归算法构造JSON树形结构

    Java 递归算法构造 JSON 树形结构是指通过 Java 语言使用递归算法将数据库中的菜单表构建成树形的 JSON 格式发送给第三方。这种方法可以将复杂的树形结构数据转换成易于理解和处理的 JSON 格式。 在 Java 中,使用...

    java线程中的递归

    java线程中的递归

Global site tag (gtag.js) - Google Analytics