编写递归算法程序:一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求数列的第40位数是多少。

斐波那契数列方法定义:

F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=3,n∈N*)

 

编写递归算法程序:一列数的规则如下: 1、1、2、3、5、8、13、21、34...... 求数列的第40位数是多少?

public class DiGui {
	public static void main(String[] args) {
		System.out.println(Di(40));
	}

	static long Di(int n) {

		if(1<=n&&n<=2) {    //前两个
			return 1;//递归头
		}

		else {
			return Di(n-1)+Di(n-2);    //递归体
		}
	}

}

 

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
一、本书的内容 目前,市面上有关计算机算法的书很多,有些叙述严谨但不全面,另外一些则是容量很大但不够严谨。本书将叙述的严谨性以及内容的深度和广度有机地结合了起来。第1版推出后,即在世界范围内受到了广泛的欢迎,被各高等院校用作多种课程的教材和业界的标准参考资料。它深入浅出地介绍了大量的算法及相关的据结构,以及用于解决一些复杂计算问题的高级策略(如动态规划、贪心算法、平摊分析等),重点在于算法的分析和设计。对于每一个专题,作者都试图提供目前最新的研究成果及样例解答,并通过清晰的图示来说明算法的执行过程。. 本书是原书的第2版,在第1版的基础之上增加了一些新的内容,涉及算法的作用、概率分析和随机化算法、线性规划,以及对第1版中详尽的、几乎涉及到每一小节的修订。这些修订看似细微,实际上非常重要。书中引入了“循环不变式”,并贯穿始终地用来证明算法的正确性。在不改动学和分析重点的前提下,作者将第1版中的许多学基础知识从第一部分移到了附录中。 二、本书的特点 本书在进行算法分析的过程中,保持了很好的学严谨性。书中的分析和设计可以被具有各种水平的读者所理解。相对来说,每一章都可以作为一个相对独立的单元来教授或学习。书中的算法以英语加伪代码的形式给出,只要有一点程序设计经验的人都能读懂,并可以用任何计算机语言(如C/C++和Java等)方便地实现。在书中,作者将算法的讨论集中在一些比较现代的例子上,它们来自分子生物学(如人类基因项目)、商业和工程等领域。每一小节通常以对相关历史素材的讨论结束,讨论了在每一算法领域的原创研究。 本书的特点可以概括为以下几个方面: 1.概念清晰,广度、深度兼顾。 本书收集了现代计算机常用的据结构和算法,并作了系统而深入的介绍。对涉及的概念和背景知识都作了清晰的阐述,有关的定理给出了完整的证明。 2.“五个一”的描述方法。 本书以相当的深度介绍了许多常用的据结构和有效的算法。编写上采用了“五个一”,即一章介绍一个算法、一种设计技术、一个应用领域和一个相关话题。.. 3.图文并茂,可读性强。 书中的算法均以通俗易懂的语言进行说明,并采用了大量插图来说明算法是如何工作的,易于理解。 4.算法的“伪代码”形式简明实用。 书中的算法均以非常简明的“伪代码”形式来设计,可以很容易地把它转化为计算机程序,直接应用。 注重算法设计的效率,对所有的算法进行了仔细、精确的运行时间分析,有利于进一步改进算法。 三、本书的用法 本书对内容进行了精心的设计和安排,尽可能考虑到所有水平的读者。即使是初学计算机算法的人,也可以在本书中找到所需的材料。 每一章都是独立的,读者只需将注意力集中到最感兴趣的章节阅读。 1.适合作为教材或教学参考书。 本书兼顾通用性与系统性,覆盖了许多方面的内容。本书不但阐述通俗、严谨,而且提供了大量练习和思考题。针对每一节的内容,都给出了量和难度不等的练习题。练习题用于考察对基本内容的掌握程度,思考题有一定的难度,需进行精心的研究,有时还通过思考题介绍一些新的知识。 前言回到顶部↑本书提供了对当代计算机算法研究的一个全面、综合性的介绍。书中给出了多个算法,并对它们进行了较为深入的分析,使得这些算法的设计和分析易于被各个层次的读者所理解。力在不牺牲分析的深度和学严密性的前提下,给出深入浅出的说明。. 书中每一章都给出了一个算法、一种算法设计技术、一个应用领域或一个相关的主题。算法是用英语和一种“伪代码”来描述的,任何有一点程序设计经验的人都能看得懂。书中给出了230多幅图,说明各个算法的工作过程。我们强调将算法的效率作为一种设计标准,对书中的所有算法,都给出了关于其运行时间的详细分析。 本书主要供本科生和研究生的算法或据结构课程使用。因为书中讨论了算法设计中的工程问题及其学性质,因此,本书也可以供专业技术人员自学之用。 本书是第2版。在这个版本里,我们对全书进行了更新。所做的改动从新增了若干章,到个别语句的改写。 致使用本书的教师 本书的设计目标是全面、适用于多种用途。它可用于若干课程,从本科生的据结构课程到研究生的算法课程。由于书中给出的内容比较多,只讲一学期一般讲不完,因此,教师们应该将本书看成是一种“缓存区”或“瑞典式自助餐”,从中挑选出能最好地支持自己希望教授的课程的内容。 教师们会发现,要围绕自己所需的各个章节来组织课程是比较容易的。书中的各章都是相对独立的,因此,你不必担心意想不到的或不必要的各章之间的依赖关系。每一章都是以节为单位,内容由易到难。如果将本书用于本科生的课程,可以选用每一章的前面几节内容;在研究生课程中,则可以完整地讲授每一章。 全书包含920多个练习题和140多个思考题。每一节结束时给出练习题,每一章结束时给出一些
22春"计算机科学与技术"专业《计算方法》在线作业答案参考 1. 一个有n个结点的图,最多有( )个连通分量。 A.0 B.1 C.n-1 D.n 参考答案:D 2. 迭代法的优点是算法简单,因而编制程序比较容易。( ) 迭代法的优点是算法简单,因而编制程序比较容易。( ) A、错误 B、正确 参考答案:B 3. 已知一列{8,9,7,4,1,2},使用简单选择排序法对其按照升序进行排列,第0趟比较之后数列为( ) A.8,9,7,4,1,2 B.1,9,7,4,8,2 C.8,7,4,1,2,9 D.1,2,8,9,7,4 参考答案:B 4. 在C语言中字符串的头文件是string.h。( ) A.错误 B.正确 参考答案:B 22春"计算机科学与技术"专业《计算方法》在线作业一答案参考9全文共5页,当前为第1页。5. 依据3个样点(0,1),(1,2)(2,3),其插值多项式p(x)为( )。 依据3个样点(0,1),(1,2)(2,3),其插值多项式p(x)为( )。 A、x B、x+1 C、x-1 D、x+2 参考答案:B 22春"计算机科学与技术"专业《计算方法》在线作业一答案参考9全文共5页,当前为第1页。 6. 对于二分查找,表必须有序且表中据必须是整型,实型或字符型。( ) A.错误 B.正确 参考答案:A 7. 按"先进后出"原则组织据的据结构是队列。( ) A.错误 B.正确 参考答案:A 8. 执行memset(s,'a',4)后,s的值为( )。 A."aaaa" B."a4" C."4a" D."eeee" 参考答案:A 9. 基于"使残差的平方和"为最小的准则来选取拟合曲线的方法称为曲线拟合的最小二乘法。( ) 基于"使残差的平方和"为最小的准则来选取拟合曲线的方法称为曲线拟合的最小二乘法。( ) A、错误 B、正确 参考答案:B 22春"计算机科学与技术"专业《计算方法》在线作业一答案参考9全文共5页,当前为第2页。10. 递归算法的执行过程分( )和( )两个阶段。 A.递归 B.递推 C.回归 D.回溯 参考答案:BC 22春"计算机科学与技术"专业《计算方法》在线作业一答案参考9全文共5页,当前为第2页。 11. 下列叙述中正确的是( )。 A.线性表的链式存储结构与顺序存储结构所需要的存储空间是相同的 B.线性表的链式存储结构所需要的存储空间一般要多于顺序存储结构 C.线性表的链式存储结构所需要的存储空间一般要少于顺序存储结构 D.上述三种说法都不对 参考答案:B 12. 顺序结构、选择结构、循环结构三种结构共同特点是( ) A.只有一个入口 B.只有一个出口 C.结构内的每一部分都有机会被执行到(不存在死语句) D.结构内不存在死循环(永远执行不完的循环) 参考答案:ABCD 13. 下列排序方法中,哪一个是稳定的排序方法?( ) A.直接选择排序 B.二分法插入排序 C.希尔排序 D.快速排序 参考答案:B 14. 冒泡排序是一种不稳定排序方法。( ) A.错误 B.正确 参考答案:A 22春"计算机科学与技术"专业《计算方法》在线作业一答案参考9全文共5页,当前为第3页。15. 通过点(x ,y ),(x ,y )的拉格朗日插值基函l (x ),l (x )满足( )。 通过点(x ,y ),(x ,y )的拉格朗日插值基函l (x ),l (x )满足( )。 A、l (x )=0,l (x )=0 B、l (x )=0,l (x )=1 C、l (x )=1,l (x )=0 D、l (x )=1,l (x )=1 参考答案:D 22春"计算机科学与技术"专业《计算方法》在线作业一答案参考9全文共5页,当前为第3页。 16. 下列说法错误的是( ) A.使用高级计算机语言,如C、C++、Java,编写程序,都需要经过编译器编译或解释,才能转化成机器能够识别并能执行的二进制代码 B.如何一步步的跟踪代码,找到问题,搞明白为何程序不能正常运行,这个过程称为调试程序 C.自动化的工具同样也能够帮助你跟踪程序,尤其当程序很复杂时效果更加明显,这种工具叫做调试器 D.调试器不能解决程序中出现的问题 参考答案:D 17. 议程的近似方法有( ) A.迭代法 B.牛顿法 C.弦截法 D.二分法 参考答案:ABCD 18. 对一组据(84,47,25,15,21)排序,据的排列次序在排序的过程中的变化为(1) 84 47 25 15 21 (2) 15 47 25 84 21 (3) 15 21 25 84 47 (4) 15 21 25 47 84 则采用的排序方法是( )。 A.选择 B.冒泡 C.快速 D.插入 参考答案:A 22春"计算机科学与技术"专业《计算方法》在线

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

healthLau

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值