毕业论文论文范文课程设计实践报告法律论文英语论文教学论文医学论文农学论文艺术论文行政论文管理论文计算机安全
您现在的位置: 毕业论文 >> 课程设计 >> 正文

C++用递归的方法求Fibonacci数列

更新时间:2011-5-11:  来源:毕业论文

C++用递归的方法求Fibonacci数列
题目1. 编程序,使用如下所谓的简单变量“数据平移”方法来求出Fibonacci数列的第n项(的具体项值)并显示在屏幕上(正整数n通过键盘输入):说明变量old1=1,old2=1,newItem;新的Fibonacci项newItem总是“距它最近”的前两项(old1与old2)的累加和。而后通过“old1=old2; old2=newItem;”进行所谓的“数据平移”。接着计算另一个新的Fibonacci项newItem,依次循环,直到求出数列的第n项时为止。
Fibonacci数列的计算公式如下:
fib(1) = 1;
fib(2) = 1;
fib(n) = fib(n-1) + fib(n-2);    //对大于等于3的任意n
(一) 需求分析:
该题的目标是编制Fibonacci 函数,该函数的第一项和第二项都是1,可以用递归或非递归的Fibonacci 函数来求Fibonacci数列的第n项。该数列的定义如题目说述。
输入的值的原文请找腾讯752018766六,维-论'文.网http://www.lwfree.cn/ 范围是从1到n的整数,理论上是这样的。输出的是fib(n)的值。
程序达到这样的功能,在提示语言下输入n的值,输出fib(n)的值。
测试的数据包括5,13,70等。这样可以代表所有的数据,整数和小数程序是如何处理的,还有如果是递归的,当n 比较大时,cpu 的执行效率是怎样的,这些都可以看出来。
(二) 概要设计:
程序主要用到int 型数据,返回的也是int 型数据。程序主要用到Fibonacci 函数,用到递归或非递归的求值方法。程序流程图如下:
 
(三)   详细设计:
非递归方式的Fibonaccci:
主要用到的是题目中说道的“数据平移”的方法,fabn=fab1+fab2,fab1=fab2,fab2=fabn;一直到n=1,n=2 时为止。(代码见实验代码1.cpp)
(四)   调试分析:
 编制函数也比较简单,根据流程图,可以判定用到if 语句来判断n 的大小,最后都return fib(n-1)+fib(n-2),一直到n=1 或n=2 为止。
 发现程序在n=70时,结果要等很久还不出来,因为程序非递归,数越大,效率比较低。当n=13.3时,函数自动把它转换成整数但是一直输出233。
(五)   用户使用说明:
 根据提示输入一个int 型的整数n ,根据输入值判断,并输出他的值。
(六)    测试结果:
当n=3时:当n=13时:当n=70 时:
(七)    源程序:见源代码1.cpp
 (八)    编程体会:
这个题比较简单可以用递归和非递归两种方法做,这次使用了非递归的算法来解决这个问题。1826

[1] [2] 下一页

C++用递归的方法求Fibonacci数列下载如图片无法显示或论文不完整,请联系qq752018766
设为首页 | 联系站长 | 友情链接 | 网站地图 |

copyright©lwfree.cn 六维论文网 严禁转载
如果本毕业论文网损害了您的利益或者侵犯了您的权利,请及时联系,我们一定会及时改正。