递归--我自己调我自己_什么情况下方法自己调用自己-程序员宅基地

技术标签: 算法  java  数据结构与算法  

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

如果看了概念之后很懵,没关系,我们通过两个具体的实例来帮助我们理解什么是“递归”。

打印问题

public class RecursionTest{
   
    
  public static void main(String[] args){
   
     
   test(4);
   } 
    public static void test(int n) {
   
    
    if (n > 2) {
   
    
    	test(n - 1);
    }
    System.out.println("n=" + n);
    }
}
//输出结果:
//n=2
//n=3
//n=4

分析:
在这里插入图片描述
阶乘问题

public class RecursionTest{
   
    
  public static void main(String[] args){
   
     
   int res=factorial(3);
   System.out.println("res="+res);
   }
    public static int factorial(int n) {
   
    
    if (n == 
版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_42369886/article/details/104691381

智能推荐

Faster RCNN 中的Anchor_faster rcnn的anchor-程序员宅基地

文章浏览阅读2k次,点赞7次,收藏21次。本篇文章详细介绍Faster RCNN 中的Anchor计算_faster rcnn的anchor

为什么要学习设计模式_为什么要用 模版设计模式-程序员宅基地

文章浏览阅读757次。 废话不想多说,就说关键让你信服。 前情一:上班后,很多时候首先就需要熟悉公司项目的代码工程,里面一大批分支,一大堆代码文件,看着都头疼,这对于编程新手初级程序员来说想要短时间弄透它的结构是多么难的一件事啊。如果你熟练设计模式,那问题就不大了,首先大框架如果是MVC模式那简直是一个通透啊,数据管理文件放一堆,控制逻辑放一堆,显示放一堆,三个大堆结构就清清楚楚。然后再看自己需..._为什么要用 模版设计模式

在线jquery.min.js引用_jquery.min.js cdn-程序员宅基地

文章浏览阅读3.2w次,点赞2次,收藏9次。jQuery: <scripttype="text/javascript"src="http://code.jquery.com/jquery-latest.js"></script><scripttype="text/javascript"src="https://cdn.bootcss.com/jquery/3.2.1/jquery.js">_jquery.min.js cdn

TVM系列 - 量化_tvm量化-程序员宅基地

文章浏览阅读3.7k次,点赞3次,收藏11次。TVM系列 - 量化TVM量化原理TVM量化现状TVM量化原理介绍TVM量化代码解析TVM量化原理关于量化的方式其实已经有足够的文章去了解目前最主流的两种:离线量化及训练时量化(大家应该能理解,其实就是伪量化),而tvm的作者之一也对这些文章有一个初步的汇总:tvm作者关于量化方式的讨论,这部分不做过多讨论,直接进入tvm量化的部分TVM量化现状事实上,可能tvm团队将主要精力放到了autotvm,以框架整体的优化上(毕竟这部分才是tvm的特点呀),tvm的单纯量化效果并不理想,不仅精度有所下降,正_tvm量化

SpringBoot 集成Shiro设置后台管理登陆和会员登陆注册管理_spring boot集成shiro 实现管理员与普通用户登录-程序员宅基地

文章浏览阅读857次。概述使用Springboot 集成了 shiro。现在需要一个系统中,拥有后台管理员,和注册会员两种用户,后台管理员登陆之后,需要跳转到后台管理。注册会员需要跳转到会员之前跳转到登陆过来的页面。并且两个帐号并不可以通用。FormAuthenticationFilter这个过滤器是我们shiro配置类中。 配置对请求路径的过滤策略。我们需要继承这个类来重写三个方法** * 管理员后台登陆 ..._spring boot集成shiro 实现管理员与普通用户登录

解决编译中“file too short”问题_file too short-程序员宅基地

文章浏览阅读3.9w次,点赞9次,收藏29次。       最近在编译中遇到下面的问题,由于代码是刚从svn上checkout下来的,下意识觉得没什么问题,因此折腾了比较久的时间,现在分享一下,问题如下:/usr/lib/gcc/x86_64-linux-gnu/4.4.7/cc1: error while loading shared libraries: /home/zouchun/cucc..._file too short

随便推点

python多进程读同一个文件_python 多进程读写文件-程序员宅基地

文章浏览阅读4k次。import timefrom multiprocessing import Process, JoinableQueue, cpu_countimport csv####处理一条数据的方法def deal_line(line, writer, csv_file):writer.writerow((line[3], line[1]))csv_file.flush()#重点,在多进程中写文件需要尽快..._python多进程读取同一个文件

SQL-Labs从搭建到闯关(SQL注入天书)-程序员宅基地

文章浏览阅读4.4k次,点赞6次,收藏42次。一、介绍  sql-labs是一个学习sql注入的平台二、环境搭建GitHub项目地址:https://github.com/Audi-1/sqli-labs》》启动phpstudy》》将sql-labs解压到站点目录》》进入到sqli-labs靶机站点,点击重置数据库即可在mysql中创建了数据库》》进入到关卡1三、注入类型3.1 Less-1 字符型注入,基于错误的GET单引号3.1.1 判断是否存在注入点》》输入?id=1 显示出了数据库中第一行的数据》》输入单引号_sql-labs

cv2.findContours()函数用法_c#如何使用cv2.findcontours-程序员宅基地

文章浏览阅读1.7w次,点赞4次,收藏31次。opencv中cv2.findContours(image, mode, method[, contours[, hierarchy[, offset ]]]) → image, contours, hierarchyimage-寻找轮廓的图像;mode-轮廓的检索模式: cv2.RETR_EXTERNAL表示只检测外轮廓 cv2.RETR_LIST_c#如何使用cv2.findcontours

java在编译后出现 Error: A JNI error has occurred, please check your installation and try again-程序员宅基地

文章浏览阅读9.3k次,点赞14次,收藏10次。今天写代码的时候突然在运行的时候出了一个从来没发生过的问题 在运行Java(windows环境下)程序,javac运行.java文件没有报错,但java运行的时候报错 看到这个报错后试过很多方法,都没效果,甚至还专门跑去看了下java和javac的版本是否一致 看了java和javac的版本,发现没问题,项目也没问题就一个简单的hellojava输..._error: a jni error has occurred, please check your installation and try agai

算法设计与分析: 5-21 2X2X2魔方问题_2x2x2x2x2怎么算-程序员宅基地

文章浏览阅读741次。5-21 2X2X2魔方问题问题描述2×2×22×2×22\times2\times2 魔方的构造如图所示。图中英文字母 U,L,F,R,B,D 分别表示魔方的 6 个 面中的上面,左面,前面,右面,后面,底面。魔方的每个面都可以绕其中轴旋转。给定魔 方的初始状态,可以经过若干次旋转将魔方变换成每个面都只有一种颜色的状态。绕中轴将 一个面旋转 90 度算作一次旋转。试设计一个算法计算出..._2x2x2x2x2怎么算

moment常用时间封装(几天前,几周前,几月前,几年前)_moment 加5年-程序员宅基地

文章浏览阅读3.4k次。封装时间API自己封装了项目中需要用的常用时间,比如当前时间,几天前,几周前等等。一些UI组件比如antd,element等需要用moment对象的日期、时间组件可以直接用。上代码。import moment from 'moment'/** * 获取当前时间 * @returns {moment.Moment} */export const getNowDate = () => { return moment(new Date(), 'YYYY-MM-DD')}/** _moment 加5年

推荐文章

热门文章

相关标签