递归算法就是在程序中不断反复调用自身来达到求解问题的方法。这里的重点是调用自身,这就要求待求解的问题能够分解为相同问题的一个子问题。这样,通过多次递归调用,便可以完成求解。
递归调用是一个方法在其方法体内调用其自身的方法调用方式。这种方法也称为“递归方法”。在递归方法中,主调方法又是被调方法。执行递归方法将反复调用其自身。每调用一次就进入新的一层。
方法的递归调用分两种情况:直接递归和间接递归。
(1)直接递归,即在方法中调用方法本身。
(2)间接递归,即间接地调用一个方法,如func_a调用func_b,func_b又调用func_a。间接递归用得不多。

案例如下:

如果一对两个月大的兔子以后每一个月都可以生一对小兔子,而一对新生的兔子出生两个月后才可以生小兔子。也就是说,1月份出生,3月份才可产仔。那么假定一年内没有产生兔子死亡事件,那么1年后共有多少对兔子呢?

package ca.caldemo;import java.util.Scanner;public class Recursion {public static int recursion(int n){int i=0,j=0,result=0;if (n==1||n==2){return 1;}else{i=recursion(n-1);j=recursion(n-2);result=i+j;}return result;}public static void main(String[] args) {System.out.println("请输入周期");Scanner scanner=new Scanner(System.in);int n=scanner.nextInt();int result =Recursion.recursion(n);System.out.println("结果"+result);}}

以及最简单的阶乘递归:

 public static int jc(int n){if(n<=1){return 1;}else{return n*jc(n-1);}      }

递归算法(兔子产仔问题)相关推荐

  1. 5.12兔子产仔问题

    Q:已知一对两个月大的兔子以后每个月可以生一对小兔子,而一对新生的兔子出生两个月才可以生小兔子.假如一年内没有发生死亡,则一年内共能繁殖成多少对? 规律: 1月:1对新生的兔子(A1,A2) 2月:1 ...

  2. 递归算法:兔子繁殖问题详解

    面试题:有一对兔子,从出生后第3个月起每月都生一对小兔子,小兔子长到第3个月后每个月又生一对小兔子,按此规律,假设兔子没有死亡,第一个月有一对刚出生的小兔子,问第20个月有多少只兔子? 解题思路:第一 ...

  3. java 兔子生仔问题

    题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子对数为多少? 程序分析: 兔子的规律为数列1,1,2,3,5,8 ...

  4. 算法-经典趣题-兔子产仔

    本文为joshua317原创文章,转载请注明:转载自joshua317博客 算法-经典趣题-兔子产仔 - joshua317的博客 一.问题 兔子产仔是一个非常古老而经典的问题,其与数论有关.兔子产仔 ...

  5. 数据结构和算法详解(四)——五大基本算法思想

    更多例子可参考:https://blog.csdn.net/Aidam_Bo/article/details/86715865 一.穷举算法思想 穷 举 算 法 (ExhaustiveA ttack ...

  6. 猴子爬山编程java_Java趣味编程100例

    第1章 变幻多姿的图表(教学视频:69分钟) 1.1 金字塔图案 1.2 九九乘法表 1.3 余弦曲线 1.4 奥运五环旗 1.5 杨辉三角 1.6 国际象棋棋盘 1.7 心形图 1.8 回型矩阵 1 ...

  7. c语言常用算法pdf,妙趣横生的算法(C语言实现 第2版) 带目录完整pdf[94MB]

    <妙趣横生的算法(C语言实现 第2版)>是深受广大读者好评的<妙趣横生的算法(C语言实现)>一书的全新升级版.本书在第1版的基础上对原书内容做了大量的调整和补充,并将书中的实例 ...

  8. Python 趣味百题

    趣味整数 1 不重复的3位数 -易 2 水仙花数 -易 3 完全数 -中 4 相亲数 -中 5 黑洞数 -中 6 勾股数 -易 7 自守数 -易 8 3位反序数 -中 趣味素数 1 素数 -中 2 孪 ...

  9. 目录——Java趣味编程100例

    第1章  变幻多姿的图表(  教学视频:69分钟) 1 1.1  金字塔图案 1 1.2  九九乘法表 3 1.3  余弦曲线 5 1.4  奥运五环旗 10 1.5  杨辉三角 12 1.6  国际 ...

最新文章

  1. PHP运算符种类很多 主要有,PHP运算符的类别概览
  2. org.springframework.expression.spel.SpelEvaluationException: EL1005E:(pos 0): Type cannot be found
  3. 程序员35岁不转型就退休,是真的吗?
  4. 你想知道的Spring框架配置使用流程和依赖注入!
  5. iOS开发 - StoryBoard + UIScrollView + UIView
  6. 12306 出招抢票软件,技术黄牛生意要“黄”?
  7. 2字段添加注释_2w字长文给你讲透了配置类为什么要添加 @Configuration注解
  8. PhpStorm之三种视图模式
  9. vs2005中文版/2010中文旗舰版等安装步骤和注意
  10. QGIS的部分使用流程
  11. 与大学生谈学习BIM软件开发所需要的准备
  12. 辨识DV、OV、EV三种证书类型
  13. Keil 编译前后 自动将 hex 转 bin
  14. 什么是产生式知识表示?给出这种表示方法的有缺点?
  15. MSVC X64 函数中的 RSP, RBP 和 Calling Convention
  16. 二叉排序树详解及实现
  17. CPU RISC-V技术
  18. spp_solver
  19. c# 时间格式化为英文_C#中如何将日期中的月份转化成英文
  20. 【Android Framework (六) 】- Launcher

热门文章

  1. HBASE的hmaster报java.lang.RuntimeException: HMaster Aborted
  2. 移动宽带连不上微软服务器,为什么移动宽带在系统待机后无法关闭
  3. 记一次苹果APP从账号续费到发布成功的历程
  4. Java企业门户网站官网(含源码+论文+答辩PPT等)
  5. 圆角边框(border-radius属性、border-radius使用规则)
  6. c语言位与运算的作用,c语言位运算符的用法
  7. android大屏适配_Android 全面屏适配
  8. 美拍之争:百度,你就从了美图秀秀吧
  9. 分享一个转转闲鱼交易猫源码
  10. 路由器VPI/VCI DNS大全