Java基础知识强化之IO流笔记12:递归之递归解决问题的思想(图解)

时间:2022-06-07 01:18:37

1. 使用递归计算5!的结果,递归思想的本质如下:

Java基础知识强化之IO流笔记12:递归之递归解决问题的思想(图解)

2. 下面就要使用代码实现这个递归:

递归实现分析:

(1)做递归要写一个方法

(2)出口条件

(3)规律

代码实现如下:

 package com.himi.diguidemo;

 /*
* 需求:代码实现求5的阶乘
* 两种方法:
* A:循环实现
* B:递归实现(分解法 和 合并法)
*/ public class DiGuiDemo { public static void main(String[] args) {
//循环实现
int jc =1;
for (int i = 2; i <=5; i++) {
jc*=i;
}
System.out.println("5!="+jc);
System.out.println("=============================");
//递归实现 int result = 0;
result = func(5);
System.out.println("5!="+result); } public static int func(int n) {
if(n==1) {
return 1;
}else {
return n*func(n-1); } } }

运行效果如下:

Java基础知识强化之IO流笔记12:递归之递归解决问题的思想(图解)

3. 内存图解:

图1:

Java基础知识强化之IO流笔记12:递归之递归解决问题的思想(图解)

图2:

Java基础知识强化之IO流笔记12:递归之递归解决问题的思想(图解)

Java基础知识强化之IO流笔记12:递归之递归解决问题的思想(图解)的更多相关文章

  1. Java基础知识强化之IO流笔记17:FileOutputStream构造方法使用

    1. 可以参照之前写的笔记:   Android(java)学习笔记167:Java中操作文件的类介绍(File + IO流) 2. FileOutputStream(常用的)构造方法: FileOu ...

  2. Java基础知识强化之IO流笔记71:NIO之 NIO的(New IO流)介绍

    1. I/O 简介 I/O ( 输入/输出  ):指的是计算机与外部世界或者一个程序与计算机的其余部分的之间的接口.它对于任何计算机系统都非常关键,因而所有 I/O 的主体实际上是内置在操作系统中的. ...

  3. Java基础知识强化之IO流笔记68:Properties和IO流集合使用

    1. Properties和IO流集合使用 这里的集合必须是Properties集合:  public void load(Reader reader):把文件中的数据读取到集合中  public v ...

  4. Java基础知识强化之IO流笔记66:Properties的概述 和 使用(作为Map集合使用)

    1. Properties的概述  Properties:属性集合类.是一个可以和IO流相结合使用的集合类. 该类主要用于读取以项目的配置文件(以.properties结尾的文件 和 xml文件). ...

  5. Java基础知识强化之IO流笔记22:FileInputStream &sol; FileOutputStream 复制文本文件案例1

    1. 使用字节流FileInputStream / FileOutputStream 复制文本文件案例: 分析: (1)数据源:从哪里来 a.txt   --   读取数据  --  FileInpu ...

  6. Java基础知识强化之IO流笔记16:IO流的概述和分类

    1. IO流的分类   流向:     (1)输入流:读取数据到内存     (2)输出流:写入数据到硬盘(磁盘)   操作的数据类型:    (1)字节流:操作的数据是字节             ...

  7. Java基础知识强化之IO流笔记01:异常的概述和分类

     IO流操作的时候会出现很多问题,java中叫作异常,所以我们先介绍一下异常: 1. 程序的异常:Throwable(Throwable类是java中所有异常或错误的超类) (1)严重问题:Error ...

  8. Java基础知识强化之IO流笔记42:IO流总结(图解)

    1. IO流总结(图解)

  9. Java基础知识强化之IO流笔记83:NIO与IO

    当学习了Java NIO和IO的API后,一个问题马上涌入脑海: 我应该何时使用IO,何时使用NIO呢?在本文中,我会尽量清晰地解析Java NIO和IO的差异.它们的使用场景,以及它们如何影响您的代 ...

随机推荐

  1. Xshell生成密钥key(用于Linux 免密码登录)

  2. Unmanaged Exports使用方法

    Unmanaged Exports,可以利用C#生成非托管的DLL文件. 从https://sites.google.com/site/robertgiesecke/下载UnmanagedExport ...

  3. webpack学习笔记

    1.安装webpack npm install webpack -g 2.进入项目目录,初始化 npm init 3.将webpack安装到项目依赖中 npm install webpack --sa ...

  4. Region Representaion and Description

    两类特征 外部特征(external characteristics), 如boundary 内部特征(internal characteristics), 如像素, color, texture. ...

  5. 安装cocoods

    http://www.tuicool.com/articles/7VvuAr3 http://blog.csdn.net/gf771115/article/details/50403253(详细,用终 ...

  6. sql整型字段模糊查询

    select count(*) cnt from vhuiy where CAST(id as text) like'%12%'--id为int类型 更详细的链接:http://www.studyof ...

  7. 互联网&plus;医疗&lpar;FW&rpar;

    http://www.yn.xinhuanet.com/health/2015-06/05/c_134300133.htm 互联网+医疗 让合适的病人找合适的医生 www.yn.xinhuanet.c ...

  8. PHP克隆魔术方法

    克隆对象 __clone() $p2=clone $p; $p=>say(); 克隆对象的时候自动调用的方法 作用和构造方法一样是对新克隆的对象进行初始化 在这个方法中$this是副本所以可以给 ...

  9. Android之TCP服务器编程

    推荐一个学java或C++的网站http://www.weixueyuan.net/,本来想自己学了总结出来再写博客,现在没时间,打字太慢!!!!,又想让这好东西让许多人知道. 关于网络通信:每一台电 ...

  10. Flask之笔记集合

    目录 一.简述 二.基本使用 三.配置文件 四.路由系统 2.自定义正则路由 五.模版语言 六.请求和响应 七.Session 2.自定义session 八.蓝图 九.message 十.中间件 十一 ...