java 20 -1 递归的概述和案例
1 /* 2 * 递归:方法定义中调用方法本身的现象 3 * 4 * 方法的嵌套调用,这不是递归。 5 * Math.max(Math.max(a,b),c); 6 * 7 * public void show(int n) { 8 * if(n <= 0) { 9 * System.exit(0); 10 * } 11 * System.out.println(n); 12 * show(--n); 13 * } 14 * 15 * 注意事项: 16 * A:递归一定要有出口,否则就是死递归 17 * B:递归的次数不能太多,否则就内存溢出 18 * C:构造方法不能递归使用 19 * 20 * public DiGuiDemo() { 21 * DiGuiDemo(); 22 * } 23 * 24 * 举例: 25 * A:从前有座山,山里有座庙,庙里有个老和尚和小和尚,老和尚在给小和尚讲故事,故事是: 26 * 从前有座山,山里有座庙,庙里有个老和尚和小和尚,老和尚在给小和尚讲故事,故事是: 27 * 从前有座山,山里有座庙,庙里有个老和尚和小和尚,老和尚在给小和尚讲故事,故事是: 28 * 从前有座山,山里有座庙,庙里有个老和尚和小和尚,老和尚在给小和尚讲故事,故事是: 29 * ... 30 * 出口: 庙挂了,或者山崩了 31 * B:学编程 -- 高薪就业 -- 挣钱 -- 娶媳妇 -- 生娃娃 -- 放羊 -- 挣学费 32 * 学编程 -- 高薪就业 -- 挣钱 -- 娶媳妇 -- 生娃娃 -- 放羊 -- 挣学费 33 * 学编程 -- 高薪就业 -- 挣钱 -- 娶媳妇 -- 生娃娃 -- 放羊 -- 挣学费 34 * 学编程 -- 高薪就业 -- 挣钱 -- 娶媳妇 -- 生娃娃 -- 放羊 -- 挣学费 35 * ... 36 * 出口:娶不到媳妇或者生不了娃娃 37 */ 38 39 40 package zl_DiGui; 41 /* 42 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问第二十个月的兔子对数为多少? 43 分析: 44 兔子对数 45 第一个月: 1 46 第二个月: 1 47 第三个月: 2 48 第四个月: 3 49 第五个月: 5 50 第六个月: 8 51 1,1,2,3,5,8... 52 规则: 53 A:从第三项开始,每一项都是前两项之和 54 B:第一第二项都是已知的 55 方法: 56 A:数组 57 B:变量的变化实现 58 第一个月 a=1,b=1; 59 第二个月 a=1,b=2; 60 第三个月 a=2,b=3; 61 第四个月 a=3,b=5; 62 ... 63 每个月的a,是上个月的b,每个月的b,是上个月的a+b 64 C:递归 65 a:返回类型 int 66 b:参数列表 int n (月份) 67 c:出口:n = 1 || n ==2 时,就是第一个月或第二个月时 68 69 */ 70 public class DiGuiDemo1 { 71 72 public static void main(String[] args) { 73 74 //第一种方法:数组 75 int[] ary = new int[20]; 76 ary[0] = 1; 77 ary[1] = 1; 78 79 for(int x = 2; x < ary.length ; x ++){ 80 ary[x] = ary[x - 1] + ary [x - 2]; 81 } 82 System.out.println(ary[19]); 83 84 //第二种方法:变量的变化实现 85 int a = 1; 86 int b = 1; 87 for(int y = 3 ; y <= 20 ; y ++){ 88 int temp = a; 89 a = b; 90 b = temp + a ; 91 } 92 System.out.println(b); 93 94 //调用递归 95 System.out.println(digui(20)); 96 } 97 //递归 98 public static int digui(int n ) { 99 if(n == 1 || n == 2){ 100 return 1; 101 }else{ 102 return digui(n-1) + digui(n-2); 103 } 104 } 105 }
递归解决问题的思想及图解
递归求阶乘的代码实现及内存图解
转载于:https://www.cnblogs.com/LZL-student/p/5917869.html
java 20 -1 递归的概述和案例相关推荐
- java 20 -3 递归之删除特定目录下的特定文件
1 /* 2 需求:删除H:\demo目录下的带内容的文件 3 分析: 4 A:封装该目录 5 B:获取该目录下所有的文件或文件夹的File数组 6 C:遍历该File数组,获取每一个File对象 7 ...
- 【从零开始的Java开发】1-5-4 ArrayList、HashSet、HashMap 概述与案例
文章目录 集合框架的体系结构 List概述 ArrayList 案例:在List中操作String 案例:公告管理--在ArrayList中对自定义对象的操作 Set概述 案例:在Set中操作Stri ...
- java 7.函数-递归_带有谓词的Java中的函数样式-第2部分
java 7.函数-递归 在本文的第一部分中,我们介绍了谓词,这些谓词通过具有返回true或false的单一方法的简单接口,为Java等面向对象的语言带来了函数式编程的某些好处. 在第二部分和最后一部 ...
- Java定时任务(一) Timer及TimerTask的案例解析及源码分析
Java定时任务(一) Timer及TimerTask的案例解析及源码分析 一.概述: 定时任务这个概念在Java的学习以及项目的开发中并不陌生,应用场景也是多种多样.比如我们会注意到12306网站 ...
- js递归理解及使用案例
递归在平时开发中会经常用到,递归是一种编程技巧,采取函数调用函数自身的方式工作 下面是递归的特点以及使用案例 一.递归是什么? 递归通俗地讲就是函数自己调用自己,它具有以下三要素 1.一个问题可以分解 ...
- Java重构与TDD测试驱动开发实际案例一-陈勇-专题视频课程
Java重构与TDD测试驱动开发实际案例一-2117人已学习 课程介绍 本课程将高深的重构与TDD理论埋藏在一个实际案例中,深入浅出地演示了重构与TDD的完整步骤. 在这个真实的案例中 ...
- 8.递归遍历和删除案例
递归遍历和删除文件夹案例 package com.io.file;import java.io.File;/*** 递归遍历和删除*/ public class Demo3 {public stati ...
- java中的递归函数调用函数_Java中函数的递归调用
说到递归,java中的递归和C语言中也是很相似的,在Java中,递归其实就是利用了栈的先进后出的机制来描述的. public class HelloWorld { public static void ...
- 全网最全的JAVA所有版本特性【JAVA 1.0 - JAVA 20】
闲来想了解下各版本之间的特性,搜索没有最新的特性说明,故想写一份.废话不多说. PS:绝对全网最全最齐,若不是,请私聊我补充,哈哈哈哈! JDK Version 1.0 1996-01-23 Oak( ...
- java 递归查找,Java程序使用递归查找自然数之和
Java程序使用递归查找自然数之和 在此程序中,您将学习使用Java递归来查找自然数之和.这是在递归函数的帮助下完成的. 正数1.2.3 ...称为自然数.下面的程序从用户处获取一个正整数,然后计算得 ...
最新文章
- 在失败中学习,MIT新研究显示,机器可以像婴儿一样学会理解人类目标
- Nmap源码分析(操作系统扫描)
- NumPy之:标量scalars
- 一文读懂常用开源许可证
- 9 计算机组成原理第五章 中央处理器 指令流水线
- 注会考试不可以用计算机,CPA机考,不让带计算器该如何做?
- eureka注册中心之服务提供者
- java 子集_java – 带负数的子集和
- 大数据?这些你了解吗?------之基础知识篇
- 随想录(skyeye中的soc仿真)
- win10休眠_电脑升级win10后,必做的5项优化,至少提升20%的运行速度
- simulate-device测试onenet云平台
- SWAT模型教程---土地利用、土壤数据、气象数据的处理
- Snake活动轮廓模型Matlab实现
- 树莓派Python 按键实验
- 做知识付费,这十大知识付费平台一定要知道
- PHP使用PHPMailer实现发送qq邮箱
- 阻滞增长函数matlab拟合,matlab指数增长和阻滞增长拟合代码讲课稿
- java程序设计实用教程高飞pdf_普通高等教育“计算机类专业”规划教材:Java程序设计实用教程习题集 pdf epub mobi txt 下载...
- Android Studio如何更新至最新版本4.2.2
热门文章
- linux系统securecrt无法访问,在securecrt官网下载的securecrt for linux版无法启动
- 关于程序化交易的点点知识
- MySQL之 视图,触发器,事物,存储过程,函数(Day48)
- TCP/IP的全部IP协议号
- linux查看硬件信息及驱动设备
- 从web页面请求的历程出发了解计算机网络的基础知识
- 简约大方干净明亮“现代简约细体字体”
- 批量导出数据和全部导出到Excel(详细)和mybatis 中 Foreach的用法
- [月报] 掘金翻译计划月报 — 2018 年 11 月
- 如何在没有域的环境中搭建AlwaysOn(一)