算法与程序设计(二):递归
目录
一、递归的概念
二、举例
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);
}
算法与程序设计的复习嘻嘻嘻蟹蟹٩('ω')و
算法与程序设计(二):递归相关推荐
- 数据结构与算法Java(二)——字符串、矩阵压缩、递归、动态规划
不定期补充.修正.更新:欢迎大家讨论和指正 本文以数据结构(C语言版)第三版 李云清 杨庆红编著为主要参考资料,用Java来实现 数据结构与算法Java(一)--线性表 数据结构与算法Java(二)- ...
- 大厂面试算法系列-如何实现链表的逆序(二)-递归法
导语 接着上次的内容,上次博客中展示了原地进行单链表的逆序操作,当然除了原地逆序还可以通过递归的方式进行调用操作.下面就来看看通过递归的方式如何进行单链表的逆序操作. 递归法逆序链表 假定原来 ...
- 算法与程序设计相关知识
编写计算机程序解决问题的基本过程 五步: 分析问题.设计算法.编写程序.调试运行.检测结果. 算法的概念,掌握算法的描述方法,能从简单问题出发,设计出解决实际问题的算法: 算法概念:一种解决问题的方法 ...
- 算法与程序设计:算法的表述方式及其发展(学习笔记)
算法与程序设计:算法的表述方式及其发展(学习笔记) 算法与程序设计 算法概念分析 算法的表述方法 自然语言 流程图 N-S图 PAD图 伪代码 算法描述的发展现状 通俗来讲,算法是定义如何完成一个任务 ...
- 《分形算法与程序设计》目录
第1章 分形简介 1 1.1 分形概念的提出与分形理论的建立 1 1.2 分形的几何特征 1 1.3 分形的测量 4 1.4 自然界中的分形 7 1.5 分形是一种方法论 8 1.6 分形与计算机图形 ...
- 计算机算法对程序设计的作用,【程序设计论文】高中算法与程序设计教学意义及有效性(共3796字)...
摘要:算法和程序设计教学会加深学生对计算机科学的认识,使他们从游戏.聊天.打字.表格处理等对计算机工具作用的认识上升到计算机科学的高度上来,对学生的编程教育起到启蒙作用.笔者通过具体教学实例探讨在课程 ...
- 算法与程序设计(五):回溯法
目录 背景 一.概念 1.1 回溯法的算法框架 1.2 详解说明 二.举例 2.1 批作业调度问题 2.2 装载问题 背景 一.概念 回溯法有"通用解题法"之称,用它可以系统地搜索 ...
- 算法与程序设计(三):动态规划算法
目录 一.概念 1.1 动态规划算法的基本要素 1.2 动态规划算法的步骤 二.举例 2.1 矩阵连乘问题 2.1.1 穷举法 2.1.2 动态规划法 2.1.3 例题 2.2 图像压缩问题 2.3 ...
- 最小生成树实验报告c语言,算法与程序设计实验最小生成树(c语言).ppt
算法与程序设计实验最小生成树(c语言).ppt 最小生成树 问题分析: 由于在每两个城市之间都可以建立一条通信线路,n个城市之间最多可能设置n(n-1)/2条线路,而每条线路都要付出一定的经济代价,因 ...
最新文章
- mysql字符集6_【mysql】6 字符集
- String转XML
- GNU/Linux下LVM配置管理以及快照卷、物理卷、卷组、逻辑卷的创建和删除
- 选择“Win32汇编”的三大理由?
- super.getClass()方法调用返回结果的原因
- JAVASCRIPT干了不下四五种工作
- 水平布局的HTML表单
- 陶哲轩实分析 命题7.2.5 证明
- 玩了一年多电子商务,接触各种品类产品
- java编写一个彩票开奖的模拟程序.游戏共有两种玩法,一种是21选5,即玩家输入5个1到21内的不重复的数。另外一种玩法是6+1玩法,即要求玩家输入7个整数,代表所购买的彩票号码,最后一个是特码。
- 2018-03-01
- SQL Server高级查询之常见数据库对象(视图)第五章节
- SQlite数据库的C编程接口(七) 数据库锁定(Database Locking) ——《Using SQlite》读书笔记
- 模拟电子技术入门书籍教材“宝典”推荐
- sqlDBX 链接 mysql 提示ODBC驱动不正确
- Mysql-SQL查询(水手预订船案例)
- ajax高级程序设计_javascript高级程序设计核心知识总结
- total commander
- 农村穷小子的逆袭之路;如何一步一步成为中国首富。
- 如何脱掉“梆梆加固”的保护壳