目录

一、递归的概念

二、举例

2.1 阶乘函数

2.2 Fibonacci数列

2.3 Ackerman函数

2.4 整数划分问题

三、实现方法(Java程序)

3.1 阶乘函数

3.2 Fibonacci数列

3.3 Ackerman函数

3.4 整数划分问题


一、递归的概念

  • 直接或间接地调用自身的算法称为递归算法。用函数自身给出定义的函数称为递归函数
  • 树型结构和图的结构使用递归算法可使操作简化;
  • 递归算法的关键是找出递归关系式。

二、举例

2.1 阶乘函数

2.2 Fibonacci数列

2.3 Ackerman函数

2.4 整数划分问题


三、实现方法(Java程序)

3.1 阶乘函数

public static int jiecheng(int n){if (n = 0) return 1;if (n > 0)return jiecheng(n-1)*n;
}

3.2 Fibonacci数列

public static int fibonacci(int n){if(n<=1) return 1;return fibonacci(n-1)+fibonacci(n-2);
}

3.3 Ackerman函数

public static int Ackerman(int n,int m){if(n == 0 && m >= 0) return 1;if(n == 1 && m == 0) return 2;if(n >= 2 && m == 0) return n+2;if(n >= 1 && m >= 1) return Ackerman(Ackerman(n-1,m),m-1);return -1;
}

3.4 整数划分问题

public static int intdivision(int n,int m){if(n<1 || m<1) return 0;if(n == 1 || m == 1) return 1;if(n<m) return intdivision(n,n);if(n==m) return intdivision(n,n-1)+1;return intdivison(n,m-1)+intdivision(n-m,m);
}

算法与程序设计的复习嘻嘻嘻蟹蟹٩('ω')و

算法与程序设计(二):递归相关推荐

  1. 数据结构与算法Java(二)——字符串、矩阵压缩、递归、动态规划

    不定期补充.修正.更新:欢迎大家讨论和指正 本文以数据结构(C语言版)第三版 李云清 杨庆红编著为主要参考资料,用Java来实现 数据结构与算法Java(一)--线性表 数据结构与算法Java(二)- ...

  2. 大厂面试算法系列-如何实现链表的逆序(二)-递归法

    导语   接着上次的内容,上次博客中展示了原地进行单链表的逆序操作,当然除了原地逆序还可以通过递归的方式进行调用操作.下面就来看看通过递归的方式如何进行单链表的逆序操作. 递归法逆序链表   假定原来 ...

  3. 算法与程序设计相关知识

    编写计算机程序解决问题的基本过程 五步: 分析问题.设计算法.编写程序.调试运行.检测结果. 算法的概念,掌握算法的描述方法,能从简单问题出发,设计出解决实际问题的算法: 算法概念:一种解决问题的方法 ...

  4. 算法与程序设计:算法的表述方式及其发展(学习笔记)

    算法与程序设计:算法的表述方式及其发展(学习笔记) 算法与程序设计 算法概念分析 算法的表述方法 自然语言 流程图 N-S图 PAD图 伪代码 算法描述的发展现状 通俗来讲,算法是定义如何完成一个任务 ...

  5. 《分形算法与程序设计》目录

    第1章 分形简介 1 1.1 分形概念的提出与分形理论的建立 1 1.2 分形的几何特征 1 1.3 分形的测量 4 1.4 自然界中的分形 7 1.5 分形是一种方法论 8 1.6 分形与计算机图形 ...

  6. 计算机算法对程序设计的作用,【程序设计论文】高中算法与程序设计教学意义及有效性(共3796字)...

    摘要:算法和程序设计教学会加深学生对计算机科学的认识,使他们从游戏.聊天.打字.表格处理等对计算机工具作用的认识上升到计算机科学的高度上来,对学生的编程教育起到启蒙作用.笔者通过具体教学实例探讨在课程 ...

  7. 算法与程序设计(五):回溯法

    目录 背景 一.概念 1.1 回溯法的算法框架 1.2 详解说明 二.举例 2.1 批作业调度问题 2.2 装载问题 背景 一.概念 回溯法有"通用解题法"之称,用它可以系统地搜索 ...

  8. 算法与程序设计(三):动态规划算法

    目录 一.概念 1.1 动态规划算法的基本要素 1.2 动态规划算法的步骤 二.举例 2.1 矩阵连乘问题 2.1.1 穷举法 2.1.2 动态规划法 2.1.3 例题 2.2 图像压缩问题 2.3 ...

  9. 最小生成树实验报告c语言,算法与程序设计实验最小生成树(c语言).ppt

    算法与程序设计实验最小生成树(c语言).ppt 最小生成树 问题分析: 由于在每两个城市之间都可以建立一条通信线路,n个城市之间最多可能设置n(n-1)/2条线路,而每条线路都要付出一定的经济代价,因 ...

最新文章

  1. mysql字符集6_【mysql】6 字符集
  2. String转XML
  3. GNU/Linux下LVM配置管理以及快照卷、物理卷、卷组、逻辑卷的创建和删除
  4. 选择“Win32汇编”的三大理由?
  5. super.getClass()方法调用返回结果的原因
  6. JAVASCRIPT干了不下四五种工作
  7. 水平布局的HTML表单
  8. 陶哲轩实分析 命题7.2.5 证明
  9. 玩了一年多电子商务,接触各种品类产品
  10. java编写一个彩票开奖的模拟程序.游戏共有两种玩法,一种是21选5,即玩家输入5个1到21内的不重复的数。另外一种玩法是6+1玩法,即要求玩家输入7个整数,代表所购买的彩票号码,最后一个是特码。
  11. 2018-03-01
  12. SQL Server高级查询之常见数据库对象(视图)第五章节
  13. SQlite数据库的C编程接口(七) 数据库锁定(Database Locking) ——《Using SQlite》读书笔记
  14. 模拟电子技术入门书籍教材“宝典”推荐
  15. sqlDBX 链接 mysql 提示ODBC驱动不正确
  16. Mysql-SQL查询(水手预订船案例)
  17. ajax高级程序设计_javascript高级程序设计核心知识总结
  18. total commander
  19. 农村穷小子的逆袭之路;如何一步一步成为中国首富。
  20. 如何脱掉“梆梆加固”的保护壳

热门文章

  1. mysql错误连接次数过多_解决Mysql连接过多错误的方法
  2. JAVA入门算法题(十二)
  3. php第三方开放平台,开放平台第三方产品授权教程
  4. Android Studio的安装和gradle的下载
  5. 2022-4-16 服务器集中写
  6. 学习Linux命令(25)
  7. 2022-3-19 Leetcode 71. 简化路径
  8. 基于51单片机的热水卡系统
  9. Riru core is not installed
  10. java 常量池 堆_Java 内存分配(堆、栈、常量池)