(JAVA编成练习):递归的使用,简单的列子帮你理解递归。
目录
前言:
1、什么是递归?
2、递归的定义:
3、递归图示:
4、第一题:
(1)题目:
(2)代码:
a、关键处解析:
b、完整代码:
5、第二题:
(1)题目:
(2)代码:
a、关键处解析:
b、完整代码:
前言:
打卡!
递归对于初学者来讲是真的有些难理解,我初学递归时,第一个列子是汉诺塔游戏,我当时就绝望了,后来继续学习遇到了简单的题,一下就懂了,今天分享两个列子,简单的理解递归的应用。
1、什么是递归?
递归定义是数理逻辑和计算机科学用到的一种定义方式,使用被定义对象的自身来为其下定义(简单说就是自我复制的定义)。递归定义(recursive definition)亦称归纳定义,一种实质定义,指用递归的方法给一个概念下的定义。
2、递归的定义:
递归定义是数理逻辑和计算机科学用到的一种定义方式,使用被定义对象的自身来为其下定义(简单说就是自我复制的定义)。递归定义与归纳定义类似,但也有不同之处。递归定义中使用被定义对象自身来定义,而归纳定义是使用被定义对象的已经定义的部分来定义尚未定义的部分。不过,使用递归定义的函数或集合,它们的性质可以用数学归纳法,通过递归定义的内容来证明。
简单来说:递归函数就是自己调用自己的函数!
3、递归图示:
4、第一题:
(1)题目:
利用递归方法求5!
(2)代码:
a、关键处解析:
//定义一个新的方法intu() public static int retu(int n) {int s; //存计算结果if(n==1) //如果n等于1时{s=1; //s就等于1}else {s=n*retu(n-1); //否则n就乘上(调用函数自己)的n-1}return s;}
b、完整代码:
public class exercise15 {public static void main(String[] args) {int n=5;System.out.print(retu(n));}public static int retu(int n) {int s;if(n==1){s=1;}else {s=n*retu(n-1);}return s;} }
5、第二题:
(1)题目:
有五个人坐在一起,问第五个人多少岁?他说比第四个人大2岁。问第四个人多少岁?他说比第三个人大2岁。问第三个人多少岁?他说比第二个人大2岁。问第二个人多少岁?他说比第一个人大2岁。问第一个人多少岁?他说是10岁。问第五个人多大?
(2)代码:
a、关键处解析:
//同样是定义一个新的方法 public static int retu(int n) {int s;if(n==1) //当为第一个人时,年龄是10岁{s=10;}else {s=2+retu(n-1); //否则其他人均是前一个人的年龄加2}return s;}
b、完整代码:
public class exercise15 {public static void main(String[] args) {int n=5;System.out.print(retu(n));}public static int retu(int n) {int s;if(n==1){s=10;}else {s=2+retu(n-1);}return s;} }
(JAVA编成练习):递归的使用,简单的列子帮你理解递归。相关推荐
- c 递归下降识别程序_看动画轻松理解递归与动态规划
在学习「数据结构和算法」的过程中,因为人习惯了平铺直叙的思维方式,所以「递归」与「动态规划」这种带循环概念(绕来绕去)的往往是相对比较难以理解的两个抽象知识点. 程序员小吴打算使用动画的形式来帮助理解 ...
- java递归算法经典实例_Java实现简单的递归操作方法实例
前言 在数据结构算法设计中,或者一个方法的具体实现的时候,有一种方法叫做"递归",这种方法在思想上并不是特别难,但是实现起来还是有一些需要注意的.虽然对于很多递归算法都可以由相应的 ...
- Java Json API:Gson使用简单入门
GSON是Google开发的Java API,用于转换Java对象和Json对象.本文讨论并提供了使用API的简单代码示例.更多关于GSON的API可以访问:http://sites.google.c ...
- 将Java程序变成可执行文件的一个简单方法
将Java程序变成可执行文件的一个简单方法 运行Java程序(SWING或SWT的桌面程序)可以直接执行.class文件或将所有的.class文件及相关的其他文件压缩成.jar文件,然后使用javaw ...
- 【Java面试题】21 Java中的异常处理机制的简单原理和应用。
[Java面试题]21 Java中的异常处理机制的简单原理和应用. 参考文章: (1)[Java面试题]21 Java中的异常处理机制的简单原理和应用. (2)https://www.cnblogs. ...
- C#实现(递归和非递归)快速排序和简单排序
C#实现(递归和非递归)快速排序和简单排序 本人因为最近工作用到了一些排序算法,就把几个简单的排序算法,想冒泡排序,选择排序,插入排序,奇偶排序和快速排序等整理了出来,代码用C#代码实现,并且通过了测 ...
- java 配置信息_[Java教程]java 配置信息类 Properties 的简单使用
[Java教程]java 配置信息类 Properties 的简单使用 0 2016-12-08 09:00:09 Properties :(配置信息类) 是一个表示持久性的集合 ,继承 Hashta ...
- java http服务端例子_简单的用 Java Socket 编写的 HTTP 服务器应用
/*** SimpleHttpServer.java*/importjava.io.*;importjava.net.*;importjava.util.StringTokenizer;/*** 一个 ...
- java 二叉树的高度_Java实现二叉树的建立、计算高度与递归输出操作示例
本文实例讲述了java实现二叉树的建立.计算高度与递归输出操作.分享给大家供大家参考,具体如下: 1. 建立 递归输出 计算高度 前中后三种非递归输出 public class Tree_Link { ...
最新文章
- dede使用方法----如何自定义字段
- CSS布局之float浮动
- java post 打开新页面_JAVA后台POST/GET访问方法
- Android 中文 API (27) —— SeekBar.OnSeekBarChangeListener
- python tableview绑定字典_TableView索引的添加
- css常用样式汇总记录
- BIOS和Bootloader的区别
- php web mysql数据库_使用php从web访问mysql
- 保存网站快捷方式到桌面的php代码,转的一个朋友的了,加了点判断
- 阿里云成立技术脱贫联盟,要用技术助力脱贫
- c语言程序改错:求两个整数的最小公倍数,【C语言】求两个整数的最大公约数、最小公倍数...
- 计算机网络—五层知识架构图
- 数独问题流程图_数独-分析、设计、求解思路
- CSS-table样式+
- 华为性格面试的技巧方法
- linux上wps能云同步吗,WPS For Linux 6634 再次更新发布-文档也要上云
- python设置计算题_python tkinter做的生成计算题的GUI
- extjs6 清除grid中combo列的值
- 【数据库原理复习题】
- 基于Oneplus 7 Pro的Flyme9&MIUI12.5刷机教程