广告
返回顶部
首页 > 资讯 > 精选 >Java中的递归方法怎么用
  • 551
分享到

Java中的递归方法怎么用

2023-06-22 05:06:33 551人浏览 安东尼
摘要

小编给大家分享一下Java中的递归方法怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!递归方法定义本身调用方法本身的现象叫做递归在这之前我们学的东西:例如St

小编给大家分享一下Java中的递归方法怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

    递归

    方法定义本身调用方法本身的现象叫做递归

    在这之前我们学的东西:例如StringBuffer.append().append().append()这个不叫递归。这个叫方法的连续调用Math.max(Math.max(a,b),c)也不是递归,那这些是什么呢?这些是方法的调用。

    那什么是递归呢?

    举例:

    从前有座山,山里有座庙,庙里有个老和尚,老和尚在给小和尚说故事,说的故事内容是:。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

    从前有座山,山里有座庙,庙里有个老和尚,老和尚在给小和尚说故事,说的故事内容是:。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

    从前有座山,山里有座庙,庙里有个老和尚,老和尚在给小和尚说故事,说的故事内容是:。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

    从前有座山,山里有座庙,庙里有个老和尚,老和尚在给小和尚说故事,说的故事内容是:。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。。

    。。。。。。。。。。。。。。。。。。。。。。庙不在了,递归结束。

    举例:

    学习-高新就业-娶媳妇-生娃-学习-高薪就业-娶媳妇-生娃-学习-高新就业-娶媳妇-生娃-学习-高薪就业-娶媳妇-生娃-学习-高新就业-娶媳妇-生娃-学习-高薪就业-娶媳妇-生娃-学习-高新就业-娶媳妇-生娃-学习-高薪就业-娶媳妇-生娃-学习-高新就业-娶媳妇-生娃-学习-高薪就业-娶媳妇-生娃

    娶不到媳妇,生不了娃,递归结束。

    递归的注意事项:

    递归一定要有一个出口,结束条件,否则就是死循环递归的次数不能太多,否则就会发生内存溢出构造方法不能使用递归

    案例一

    参考代码:

    public class RecursionDemo1 {    public static void main(String[] args) {        show(10);    }     private static void show(int i) {        //定义结束条件        if (i<0){            System.out.println("结束循环");        }else {            System.out.print(i + "\t");            show(--i);        }    } }

    输出结果:

     10    9    8    7    6    5    4    3    2    1    0    结束循环

    递归求阶乘

    5的阶乘:

            递归求阶乘:

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

                   = 5*4!

                   = 5*4*3!

                   = 5*4*3*2!

                   = 5*4*3*2*1!

    不使用递归实现阶乘

    参考代码:

    public class RecursionDemo2 {    public static void main(String[] args) {        //不使用递归的做法        int result = 1;        for (int i = 2; i<=5; i++){            result = result * i;        }        System.out.println("5的阶乘是:" + result);    }}

     输出结果:

    5的阶乘是:120

    使用递归实现阶乘

    递归的实现思想:
    1、结束条件:
    if(i==1){return 1}

        2、寻找规律:
    if(i!=1){
    return i * recursionFun(i-1);
    }

    参考代码:

    public class RecursionDemo3 {    public static void main(String[] args) {         System.out.println(recursionFun(5));     }     private static int recursionFun(int i) {         if (i==1){            return 1;        }else {            //5 * recursionFun(4)            //5 * 4 * recursionFun(3)            //5 * 4 * 3 * recursionFun(2)            //5 * 4 * 3 * 2 * recursionFun(1)            //5 * 4 * 3 * 2 * 1            return i * recursionFun(i-1);        }    }}

    输出结果:

    120

    澳大利亚不死神兔(斐波那契数列)

    有一对兔子,从出生第三个月开始,每个月都生一对兔子, 小兔子长到三个月后每个月又生一对兔子,假设这些兔子都不会死, 问:20个月,又多少对兔子?

     找规律:

         月         兔子对数

         1             1

         2             1

         3             2

         4             3

         5             5

         6             8

         7             13

         ...

    由此可见,兔子的对数数量是:

    ..

    发现的规律是:

         1、从第三项开始,每一项都是前两项之和

         2、说明每一项的前两项的数据是已知的

     如何实现呢?

    数组方式实现

    基本变量实现

    递归方式实现

    使用数组实现

    参考代码:

    public class RecursionDemo4 {    public static void main(String[] args) {        //使用数组实现        int[] arr = new int[20];        arr[0] = 1;        arr[1] = 1;         for (int i =2 ;i < arr.length;i++){            arr[i] = arr[i-2] + arr[i -1];        }        System.out.println("第20个月的兔子对数为:" + arr[19]);    }}

     输出结果:

    第20个月的兔子对数为:6765

    使用递归实现

    参考代码:

    public class RecursionDemo5 {    public static void main(String[] args) {         System.out.println("第20个月的兔子对数为:" + ribbateFibonacci(20));     }     private static int ribbateFibonacci(int month) {         if (month == 1 || month ==2 ){            return 1;        }else {            return ribbateFibonacci(month-1) +  ribbateFibonacci(month-2);        }    }}

    输出结果:

    第20个月的兔子对数为:6765

    以上是“Java中的递归方法怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

    --结束END--

    本文标题: Java中的递归方法怎么用

    本文链接: https://www.lsjlt.com/news/302843.html(转载时请注明来源链接)

    有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

    本篇文章演示代码以及资料文档资料下载

    下载Word文档到电脑,方便收藏和打印~

    下载Word文档
    猜你喜欢
    • Java中的递归方法怎么用
      小编给大家分享一下Java中的递归方法怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!递归方法定义本身调用方法本身的现象叫做递归在这之前我们学的东西:例如St...
      99+
      2023-06-22
    • Java方法与递归怎么使用
      今天小编给大家分享一下Java方法与递归怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。java中方法的使用什么是方法...
      99+
      2023-06-30
    • java递归算法怎么用
      这篇文章给大家分享的是有关java递归算法怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。递归算法设计的基本思想是:对于一个复杂的问题,把原问题分解为若干个相对简单类同的子问题,继续下去直到子问题简单到能够直...
      99+
      2023-05-30
      java
    • java怎么使用递归方法求阶乘
      这篇文章主要介绍了java怎么使用递归方法求阶乘,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。java 用递归方法求阶乘一个正整数的阶乘,是所有不大于该数的正整数的积,并且0...
      99+
      2023-06-15
    • java递归算法怎么应用
      Java递归算法可以应用于以下场景:1. 阶乘计算:递归可以用来计算一个数的阶乘。例如,计算n的阶乘可以定义为f(n) = n * ...
      99+
      2023-08-09
      java
    • C#的递归方法怎么调用
      这篇文章主要介绍“C#的递归方法怎么调用”,在日常操作中,相信很多人在C#的递归方法怎么调用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C#的递归方法怎么调用”的疑惑有所帮助!接下来,请跟着小编一起来学习吧...
      99+
      2023-06-17
    • java尾部递归的使用方法
      这篇文章给大家分享的是有关java尾部递归的使用方法的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。1、说明在尾部递归中,递归调用是函数执行的最后一件事,因此编译器不需要保存函数堆栈帧。大多数编译器可以像优化迭代代...
      99+
      2023-06-15
    • Java方法递归的形式和常见递归算法(方法递归结合File类查找文件)
      目录方法递归方法递归的形式递归常见的算法非规律递归案例方法递归 方法递归的形式 什么是方法递归 方法直接调用自己或者间接调用自己的形式称为方法递归( recursion)。 递归做为...
      99+
      2023-02-28
      Java方法递归 java递归算法 java File类查找文件
    • Java二叉树的递归和非递归遍历方法是什么
      本篇内容主要讲解“Java二叉树的递归和非递归遍历方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Java二叉树的递归和非递归遍历方法是什么”吧!前言二叉树的遍历方法分为前序遍历,中序遍...
      99+
      2023-06-30
    • Java中的递归方法示例介绍
      目录递归递归的注意事项:案例一递归求阶乘不使用递归实现阶乘使用递归实现阶乘澳大利亚不死神兔(斐波那契数列)使用数组实现使用递归实现总结递归 方法定义本身调用方法本身的现象叫做递归 在...
      99+
      2022-11-12
    • Java程序中方法的用法重载和递归
      目录前言一、方法的基本用法1.什么是方法2.方法的基本定义3.方法调用的执行过程4.方法中的实参和形参二、方法的重载1.重载的概念2.例题分析三、方法的递归1.递归定义2.例题分析3...
      99+
      2022-11-12
    • Java的递归算法怎么优化
      优化递归算法可以通过以下方法来实现:1. 尾递归优化:尾递归是指递归函数在调用自身之后没有其他的操作,直接返回递归函数的结果。尾递归...
      99+
      2023-08-15
      Java
    • Java方法递归的形式和常见递归算法代码分析
      本篇内容介绍了“Java方法递归的形式和常见递归算法代码分析”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!方法递归方法递归的形式什么是方法递...
      99+
      2023-07-05
    • Java方法递归的思路详解
      目录前言一、什么是方法递归二、什么场景下能用递归三、如何写出递归代码-重点总结前言 今天给老铁们回顾一下递归的思路以及方法,也是给自己的一个归纳总结。 一、什么是方法递归 所谓的方法...
      99+
      2022-11-13
    • php递归方法怎么实现
      本教程操作环境:windows7系统、PHP8.1版、Dell G3电脑。php递归方法怎么实现?递归的三种常用技法:静态变量、全局变量、引用一 静态变量方式function loop(){ static $i = 0; echo $i...
      99+
      2022-10-24
    • Python中递归算法怎么用
      小编给大家分享一下Python中递归算法怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!递归是一种较为抽象的数学逻辑,可以简单的理解为「程序调用自身的算法」。...
      99+
      2023-06-29
    • java递归求阶乘的方法是什么
      Java中可以使用递归求阶乘的方法如下所示:```javapublic class Factorial {public static...
      99+
      2023-08-16
      java
    • 【JAVA】带你认识java方法|java中的方法&方法中的重载和递归
      作者主页:paper jie的博客 本文作者:大家好,我是paper jie,感谢你阅读本文,欢迎一建三连哦。 本文录入于《JAVASE语法系列》专栏,本专栏是针对于大学生,编程小白精心打造的。笔者用重金(时间和精力)打造,将jav...
      99+
      2023-08-31
      java 开发语言
    • java递归调用怎么写
      Java递归调用可以使用以下代码实现:```public static int factorial(int n) {if (n ==...
      99+
      2023-05-13
      java递归调用 java
    • Java中的什么场景使用递归,如何使用递归
      目录什么是递归?递归有什么优点?迭代和递归的区别递归的三个条件什么场景下适合使用递归场景一场景二总结Java 递归算法一、概述二、应用场景三、示例四、实际示例五、递归的缺点什么是递归...
      99+
      2022-11-12
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作