Java递归调用_递归算法1加到100

Java递归调用_递归算法1加到100递归用于解决什么样的问题?1)各种数学问题如:8皇后问题,汉诺塔,阶乘问题,迷宫问题,球和篮子的问题(google编程大赛)2)各种算法中也会使用到递归,比如快排,归并排序,二分查找,分治算法等.3)将用栈解决的问题–>递归代码比较简洁简单的说:递归就是方法自己调用自己,每次调用时传入不同的变量.递归有助于编程者解决复杂的问题,同时可以让代码变得简洁。递归需要遵守的重要规则:1…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

递归用于解决什么样的问题?

        1)各种数学问题如: 8皇后问题,汉诺塔,阶乘问题,迷宫问题,球和篮子的问题 (google编程大赛)

        2)各种算法中也会使用到递归,比如快排,归并排序,二分查找,分治算法等.

        3)将用栈解决的问题 –> 递归代码比较简洁


简单的说: 

        递归就是方法自己调用自己, 每次调用时传入不同的变量. 递归有助于编程者解决复杂的问题, 同时可以让代码变得简洁。


递归需要遵守的重要规则:

        1) 执行一个方法时,就创建一个新的受保护的独立空间(栈空间)

        2) 方法的局部变量是独立的,不会相互影响,比如n变量

        3) 如果方法中使用的是引用类型变量(比如数组),就会共享该引用类型的数据.

        4) 递归必须向退出递归的条件逼近,否则就是无限递归,出现StackOverflowError,死龟了:)

        5) 当一个方法执行完毕,或者遇到return,就会返回,遵守谁调用,就将结果返回给谁,同时当方法执行完毕或者返回时,该方法也就执行完毕。返回给谁,同时当方法执行完毕或者返回时,该方法也就执行完毕。


列举两个小案例, 回顾一下递归调用机制
1) 打印问题

    public static void main(String[] args) {
        test(4);
    }
    public static void test(int n){
        if (n>1){
            test(n - 2);
        }
        System.out.println("n = " + n);
    }

输出:
        n = 2
        n = 3
        n = 4 

2) 阶乘问题

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

输出: 120

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

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/193119.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • fork函数简介_fork()&&fork()

    fork函数简介_fork()&&fork()包括: fork函数简介fork函数的两次返回和父子进程的执行顺序简介fork()子进程与父进程之间的文件描述符问题  [cpp] view plaincopyprint? 1  1 #include                                                                                  

  • 计算机桌面图片怎么设置大小,怎么设置桌面壁纸大小[通俗易懂]

    计算机桌面图片怎么设置大小,怎么设置桌面壁纸大小[通俗易懂]很多人都知道怎麽设置电脑桌面,可真正找到适合自己屏幕的可能很少,图片或大或小,小编为大家分享了设置桌面壁纸大小的方法,下面大家跟着小编一起来了解一下吧。设置桌面壁纸大小方法先查看自己电脑屏幕分辨率,方法:依次打开控制面板\外观和个性化\显示\屏幕分辨率。查看图片的大小:单击图片,将鼠标放在图片图标上,就能看到尺寸。双击图片,用windows照片查看器打开,点击”打开“,选择画图。假设屏幕分辨率:…

  • 自适应横向宽屏幻灯片代码

    自适应横向宽屏幻灯片代码工作需要利用 jsilde实现页面幻灯片效果,利用此插件实现起来比较简单,具体步骤如下:1.head区域引入jquery.jslides.css样式表文件。 2.引入JS文件jquery-1.8.0.min.js和jquery.jslides.js 3.在你的网页中加入注释区的代码,注意图片路径。 4.为了更宽的屏幕显示较好的效果,建议图片宽度大于等于1

  • 磁盘加密

    磁盘加密

  • TinyXML2使用方法及示例

    TinyXML2使用方法及示例转自https://blog.csdn.net/liang_baikai/article/details/78783839概述 TinyXML2是简单实用的开源的C++XML文件解析库,可以很方便的应用到现有的项目之中。  TinyXML2解析器相对TinyXML1在代码上是完全重写,使其更适合于游戏开发中使用。它使用更少的内存,更快,并使用更少的内存分配。说明 xml类似数据库,…

  • 如何安装oracle vm virtualbox_虚拟机安装oracle11g

    如何安装oracle vm virtualbox_虚拟机安装oracle11g文章目录一、前言二、OracleVMVirtualBox下载安装三、XP系统镜像下载四、创建XP虚拟机五、启动虚拟机,安装系统六、主机与虚拟机双向互传文件一、前言我写了一篇关于VMware虚拟机安装WindowsXP系统的文章:https://linxinfa.blog.csdn.net/article/details/112768896不过正版VMware是收费的,所以我决定写一篇关于VirtualBox虚拟机的教程,因为VirtualBox是开源免费的,轻量,用起来也很不错,推荐大家使用。

发表回复

您的电子邮箱地址不会被公开。

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