返回顶部
首页 > 资讯 > 精选 >Java递归的概念是什么与如何使用
  • 493
分享到

Java递归的概念是什么与如何使用

2023-06-29 12:06:53 493人浏览 安东尼
摘要

这篇文章主要介绍“Java递归的概念是什么与如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java递归的概念是什么与如何使用”文章能帮助大家解决问题。一、递归的概念1.什么是递归?递归就是:

这篇文章主要介绍“Java递归的概念是什么与如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java递归的概念是什么与如何使用”文章能帮助大家解决问题。

    一、递归的概念

    1.什么是递归?

    递归就是:方法自己调用方法的过程。

    使用递归有两个前提条件:

    有一个趋近与终止的条件。

    自己调用自己 。

    如何实现递归?

    最重要的方式是:实现递归,需要去推导出一个递推公式。

    思考递归的方式:横向思考,根据递推公式来思考。

    代码的执行:是纵向执行。

    2.递归讲解

    首先看下面代码:

    public class TestDemo {    public static void func(){                func();   //自己调用自己本身    }      public static void main(String[] args) {        func();     }}

    上图代码就是一个简单的递归。

    我们再来看一下这个代码的运行结果,

    画图讲解:

    Java递归的概念是什么与如何使用

     对于上图这个递归来说,根本没有一个趋于终止的条件,所以这个函数会无休止的递归下去。每次递归都要在栈上开辟内存,一直在栈上开辟内存,总有一次会栈超出。

    老铁们要记住:一旦你写的递归有问题,如果是边界没找对一定会报一个

    Java递归的概念是什么与如何使用

    ,如果报了这个错误那么一定是你的终止条件有错误,或者是没写终止条件导致了你在递归的过程当中深度过大,最终栈溢出。

    如果想要让上述代码正确,我们需要给它加入一个终止条件。

    正确代码如下:

    public class TestDemo {    public static void func(int n){        if(n == 1) return;        func(n -1);    }      public static void main(String[] args) {        func(3);     }}

    下面会通过简单的例题让大家更加深入的了解递归

    二、递归的使用 

    例题:递归方式求n的阶乘   画图分析:

    Java递归的概念是什么与如何使用

    实现代码 :

    public class TestDemo {    public static int fac(int n){        if(n == 1) {            return 1;        }        int tmp = n * fac(n - 1);        return tmp;    }    public static void main(String[] args) {        System.out.println(fac(5));     }}

    代码画图讲解:

    Java递归的概念是什么与如何使用

    例题:求n的和

    画图分析:

    Java递归的概念是什么与如何使用

     实现代码:

    第一种写法:public class TestDemo {    public static int sumAdd(int n){        if(n == 1) {            return 1;        }        int tmp = n + sumAdd(n - 1);        return tmp;    }    public static void main(String[] args) {        System.out.println(sumAdd(3));     }} 第二种写法:public class TestDemo {    public static int sumAdd(int n){        if(n == 1) {            return 1;        }               return n + sumAdd(n -1);    }    public static void main(String[] args) {        System.out.println(sumAdd(3));     }}

    例题:递归实现按照顺序打印每一位的数字 

    画图分析:

    Java递归的概念是什么与如何使用

     实现代码:

    public class TestDemo {     public static void print(int n){        if(n < 10){            System.out.print(n+" ");        }else{            print(n/10);            System.out.print(n%10+" ");        }    }    public static void main(String[] args) {        print(1234);      }}

    例题:写一个递归方法,输入一个非负整数,返回组成它的数字之和。例如:输入1729,则应该返回1+7+2+9

    实现代码:

    public class TestDemo {      public static int sumEveryone(int n){        if(n < 10){           return n;        }else{            return n%10 + sumEveryone(n/10);        }    }     public static void main(String[] args) {        System.out.println(sumEveryone(7910));     } }

    例题:求第n个斐波那契数是几 

    画图分析:

    Java递归的概念是什么与如何使用

    实现代码:

    第一种方法:递归public class TestDemo {    public static int fib(int n){        if(n == 1 || n == 2){            return 1;        }else{            return fib(n-2)+fib(n-1);        }    }    public static void main(String[] args) {        System.out.println(fib(5));     }   第二种方法:叫做循环(迭代)实现    public static int fib2(int n){        if(n == 1 || n==2){            return 1;        }            int f1 = 1;            int f2 = 1;            int f3 = 0;            for (int i = 3; i < n; i++) {                f3 = f1+f2;                f1 = f2;                f2 = f3;            }            return f3;     }    public static void main(String[] args) {        System.out.println(fib2(45));     }

    关于“Java递归的概念是什么与如何使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注编程网精选频道,小编每天都会为大家更新不同的知识点。

    --结束END--

    本文标题: Java递归的概念是什么与如何使用

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

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

    猜你喜欢
    • Java递归的概念是什么与如何使用
      这篇文章主要介绍“Java递归的概念是什么与如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java递归的概念是什么与如何使用”文章能帮助大家解决问题。一、递归的概念1.什么是递归?递归就是:...
      99+
      2023-06-29
    • Java 精炼解读递归的概念与使用
      目录一、递归的概念1.什么是递归?2.递归讲解二、递归的使用 总结:一、递归的概念 1.什么是递归? 递归就是:方法自己调用方法的过程。 使用递归有两个前提条件: 1.有一...
      99+
      2024-04-02
    • Java中的什么场景使用递归,如何使用递归
      目录什么是递归?递归有什么优点?迭代和递归的区别递归的三个条件什么场景下适合使用递归场景一场景二总结Java 递归算法一、概述二、应用场景三、示例四、实际示例五、递归的缺点什么是递归...
      99+
      2024-04-02
    • html5与css3的概念是什么
      今天小编给大家分享一下html5与css3的概念是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了...
      99+
      2024-04-02
    • ping与TTL的概念是什么
      今天小编给大家分享一下ping与TTL的概念是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。我们所知道的TTL更多的是关...
      99+
      2023-06-27
    • Java方法与递归怎么使用
      今天小编给大家分享一下Java方法与递归怎么使用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。java中方法的使用什么是方法...
      99+
      2023-06-30
    • java数组的概念是什么
      小编给大家分享一下java数组的概念是什么,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Java可以用来干什么Java主要应用于:1. web开发;2. Andr...
      99+
      2023-06-14
    • java中锁的概念是什么
      java中锁的概念是什么?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。python有哪些常用库python常用的库:1.requesuts;2.scrapy;3.pillow;...
      99+
      2023-06-14
    • java多态的概念是什么
      Java多态的概念是指子类对象可以以父类的类型进行引用和操作。多态性是面向对象编程的重要特性之一,它允许一个变量引用不同类型的对象,...
      99+
      2023-09-22
      java
    • java中void的概念是什么
      这篇文章主要介绍了java中void的概念是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java中void的概念是什么文章都会有所收获,下面我们一起来看看吧。在java中,void是“空”的意思,即“什么...
      99+
      2023-07-05
    • java中string的概念是什么
      这篇文章主要介绍了java中string的概念是什么的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇java中string的概念是什么文章都会有所收获,下面我们一起来看看吧。在java中,string是字符串的意...
      99+
      2023-07-05
    • Java封装的概念是什么
      这篇文章主要介绍“Java封装的概念是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Java封装的概念是什么”文章能帮助大家解决问题。封装封装的概念将类的某些信息隐藏在类的内部,不允许外部程序直...
      99+
      2023-06-30
    • java映射的概念是什么
      在Java中,映射(Map)是一种数据结构,用于存储键值对(key-value pairs)的集合。每个键(key)都是唯一的,而值...
      99+
      2023-08-23
      java
    • java继承的概念是什么
      在Java中,继承是一种机制,允许一个类(子类)继承另一个类(父类)的属性和方法。子类可以使用父类中定义的属性和方法,也可以根据需要...
      99+
      2024-04-02
    • Keras中批量归一化的概念是什么
      在Keras中,批量归一化是一种用于加速深度神经网络训练的技术。它通过在每个训练批次中将输入数据进行归一化处理,使得网络在学习过程中...
      99+
      2024-04-02
    • C#中委托的概念与使用方法是什么
      本篇内容主要讲解“C#中委托的概念与使用方法是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C#中委托的概念与使用方法是什么”吧!委托的概念委托这个名字取的神乎其神的,但实质是函数式编程,把...
      99+
      2023-07-05
    • java中重载的概念是什么
      在Java中,重载(Overloading)是指在同一个类中定义多个方法,这些方法具有相同的名称但具有不同的参数列表。重载方法可以具...
      99+
      2023-09-01
      java
    • java空指针的概念是什么
      在Java中,空指针是指一个变量被赋值为null,然后尝试访问该变量的实例方法或实例字段时出现的错误。当一个变量为空时,它不指向任何...
      99+
      2024-02-29
      java
    • Java中io流的概念是什么
      在Java中,I/O流是用于处理输入和输出的一种机制。它允许程序从输入源读取数据,并将数据写入输出源。I/O流可以用于读取和写入文件...
      99+
      2024-02-29
      Java
    • C++类与封装的概念是什么及怎么使用
      这篇文章主要介绍“C++类与封装的概念是什么及怎么使用”,在日常操作中,相信很多人在C++类与封装的概念是什么及怎么使用问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C++类与封装的概念是什么及怎么使用”的疑...
      99+
      2023-06-30
    软考高级职称资格查询
    编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
    • 官方手机版

    • 微信公众号

    • 商务合作