Java 递归算法

Java 递归算法一 概述 Java 递归 简单说就是函数自身直接或间接调用函数的本身 二 应用场景 若 一个功能在被重复使用 并每次使用时 参与运算的结果和上一次调用有关 这时就可以使用递归来解决这个问题 使用要点 1 递归一定明确条件 否则容易栈溢出 2 注意一下递归的次数 三 示例 最简单的递归演示 publicclassr

一、概述:

  Java递归:简单说就是函数自身直接或间接调用函数的本身。

二、应用场景:

   若:一个功能在被重复使用,并每次使用时,参与运算的结果和上一次调用有关,这时就可以使用递归来解决这个问题。

   使用要点:

   1,递归一定明确条件。否则容易栈溢出。 

    2,注意一下递归的次数

三、示例:

  最简单的递归演示

public class recursionDemo { public static void main(String[] args) { show(); } private static void show() { method(); } private static void method() { show(); } }

四、实际示例

我们都知道 6的二进制是110,那么程序是怎么执行的呢?

代码示例:

 public static void main(String[] args) { toBin(6); } private static void toBin(int num) { if (num>0){ //取余 System.out.println(num%2); toBin(num/2); } }

  Java 递归算法

运行过程:

Java 递归算法

2、递归演示二:计算1-5,求和

public static void main(String[] args) { //1-5求和 int sum = getSum(5); System.out.println(sum); } private static int getSum(int num) { int x=9; if (num==1){ return 1; } return num+getSum(num-1); }

  Java 递归算法

程序运行图:

Java 递归算法

五、递归的缺点

     在使用递归时,一定要考虑递归的次数,负责很容易造成虚拟机 “栈溢出”。

仍然使用上面的求和代码,只是这次将求和基数变为 ,看看结果如何

public static void main(String[] args) { //1-求和 int sum = getSum(); System.out.println(sum); } private static int getSum(int num) { int x=9; if (num==1){ return 1; } return num+getSum(num-1); }

果然就造成了虚拟机栈溢出。

Java 递归算法

 

 

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/229045.html原文链接:https://javaforall.net

(0)
上一篇 2026年3月16日 下午5:35
下一篇 2026年3月16日 下午5:36


相关推荐

  • cmd炫酷代码简单_怎么弄电脑炫酷代码

    cmd炫酷代码简单_怎么弄电脑炫酷代码事先准备:新建一个txt,后缀名改成cmd(或bat)里面写代码即可声明:文章目录cmd炫酷代码大全1.循环类1.1.黑客王国1.2.命令tree1.3.我是这条街,这条街,最靓的仔1.4.数字点阵1.5.数字王国加强版2.其他类2.1.观看星球大战完结cmd炫酷代码大全1.循环类1.1.黑客王国coloraechooff:123echo0101010010100101010101010101010101010101010101010101001010101echo10101

    2022年4月19日
    176
  • Netty框架

                          Netty框架概述 Netty是由JBOSS提供的一个Java开源框架。Netty提供异步的、基于事件驱动的网络应用程序框架,用以快速开发高性能、高可靠性的网络IO程序。Netty是一个基于NIO的网络编程框架,使用Netty可以帮助你快速、简单的开发出一个网络应用,相…

    2022年4月6日
    172
  • JAVA多态学习3

    JAVA多态学习3

    2022年1月25日
    45
  • 项目管理中的配置管理

    项目管理中的配置管理配置管理的目标 为了系统地控制配置变更 在系统的整个生命周期中维持配置的完整性和可跟踪性 标识系统在不同时间点上的配置 配置管理的主要活动 制定配置管理计划 配置标识 配置控制 配置状态报告 配置审计 发布管理和交付 配置审计的功能 1 防止向用户提交不合格的产品 2 发现不完善的实现 3 找出各配置项不匹配或者不相容的现象 4 确认配置项已在所要求的质量控制后纳入基线并入库

    2026年3月16日
    2
  • pip卸载或pip19.0.3升级失败[通俗易懂]

    pip卸载或pip19.0.3升级失败[通俗易懂]1、每次升级失败都提示:python-mpipinstall–upgradepip,并没有用先使用命令curlhttps://bootstrap.pypa.io/get-pip.py-oget-pip.py然后使用命令pythonget-pip.py网上说有用,可能我的网络原因未成功最后下载pip19.0.3的gz包,解压后,在文件夹内运行命令行:pythonse…

    2022年8月31日
    4
  • navicat15激活码3月最新在线激活「建议收藏」

    navicat15激活码3月最新在线激活,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月14日
    192

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号