斐波那契数列 C++ 实现代码
2013-07-17 11:02
267 查看
斐波那契数列 C++ 实现代码 有一只动物,出生两天之后,就开始每天繁殖一只,问第20天的时候,这只动物会有多少只?假设我们第一天只有一只,那么第二天因为它只出生了一天,所以不能繁殖。第三天的时候,最初的那只和它生出来的一只,一共有三只动物,以此类推。
这是一个典型的递归题目,如果使用画图,或者自己去每天去推的话,肯定是一件耗时耗力的工作,并且很有可能会算错。
这个时候,我们的思维方式应该是这样子的,请仔细体会:
今天是第五天,动物数量等于 第四天的动物数量 + 第三天的动物数量
/*第三天的动物生下了同样数量的动物加入到第五天的数量中*/
同理:
第三天的动物数量 等于 第二天动物数量 + 第一天动物数量(新)
第四天的动物数量 等于 第三天动物数量 + 第二天动物数量(新)
第20天的动物数量 等于 第19天动物数量 + 第18天动物数量(新)
我们就很容易得到一个递归的规律,f(n)=f(n-1)+f(n-2),并且有一个跳出递归的条件,就是n>20。随便找一种语言实现上面的递归就可以了,如下是C++的代码实现:
我们应该重点关注的是,如何思考这个题目,因为在实际的面试过程中,出现了斐波那契额数的变种题目,在某500强软件企业的测试中,要求小于一分钟能够做出一道类似的题目,这个必须是一个相当优秀程序员的思维。勤加练习,必有所获!
这是一个典型的递归题目,如果使用画图,或者自己去每天去推的话,肯定是一件耗时耗力的工作,并且很有可能会算错。
这个时候,我们的思维方式应该是这样子的,请仔细体会:
今天是第五天,动物数量等于 第四天的动物数量 + 第三天的动物数量
/*第三天的动物生下了同样数量的动物加入到第五天的数量中*/
同理:
第三天的动物数量 等于 第二天动物数量 + 第一天动物数量(新)
第四天的动物数量 等于 第三天动物数量 + 第二天动物数量(新)
第20天的动物数量 等于 第19天动物数量 + 第18天动物数量(新)
我们就很容易得到一个递归的规律,f(n)=f(n-1)+f(n-2),并且有一个跳出递归的条件,就是n>20。随便找一种语言实现上面的递归就可以了,如下是C++的代码实现:
我们应该重点关注的是,如何思考这个题目,因为在实际的面试过程中,出现了斐波那契额数的变种题目,在某500强软件企业的测试中,要求小于一分钟能够做出一道类似的题目,这个必须是一个相当优秀程序员的思维。勤加练习,必有所获!
相关文章推荐
- 没什么亮点的第一篇呐…C++代码,求斐波那契(Fibonacci)数列的第n项,n可以为负数。递归算法,使用了记忆化搜索。
- 栈的应用一--斐波那契(Fibonacci)数列的实现(代码)
- 用简单的Java代码实现斐波那契数列
- C++实现斐波那契数列
- 斐波那契数列的c++实现,以及求和数列实现
- 斐波那契数列实例讲解以及C++实现
- 斐波那契数列的应用(算法实现)
- 二分查找法C++代码实现
- 最大子数组问题-c++代码实现及运行实例结果
- 斐波那契数列的各种算法实现
- 算法代码实现之选择排序,C/C++ 实现
- 冒泡排序 C++ 实现的比较简洁的代码
- kmp算法c++代码实现
- 最大子数组问题-暴力求解-c++代码实现及运行实例结果
- 打靶问题c++代码递归实现——程序员面试宝典
- Bezier曲线原理及实现代码(c++)
- C++实现FFT代码
- [转加整理]Symbian下用C++实现网页浏览的代码
- 类型转换的实现代码(C++)
- 矩阵相乘-c++代码实现及运行实例结果