斐波那契数列的思维方式
来源:互联网 发布:bind dns windows 编辑:程序博客网 时间:2024/06/03 19:23
斐波那契数列是算法中的经典,也是很多互联网企业笔试面试的热点。当然,现在很多企业不会将原本的“动物繁殖”问题照搬过来考了,很多都是这个题目的变种。让我们看一下斐波那契数列的题目描述和解答方式:
有一只动物,出生两天之后,就开始每天繁殖一只,问第20天的时候,这只动物会有多少只?假设我们第一天只有一只,那么第二天因为它只出生了一天,所以不能繁殖。第三天的时候,最初的那只和它生出来的一只,一共有三只动物,以此类推。
这是一个典型的递归题目,如果使用画图,或者自己去每天去推的话,肯定是一件耗时耗力的工作,并且很有可能会算错。
这个时候,我们的思维方式应该是这样子的,请仔细体会:
今天是第五天,动物数量等于 第四天的动物数量 + 第三天的动物数量
/*第三天的动物生下了同样数量的动物加入到第五天的数量中*/
同理:
第三天的动物数量 等于 第二天动物数量 + 第一天动物数量(新)
第四天的动物数量 等于 第三天动物数量 + 第二天动物数量(新)
第20天的动物数量 等于 第19天动物数量 + 第18天动物数量(新)
我们就很容易得到一个递归的规律,f(n)=f(n-1)+f(n-2),并且有一个跳出递归的条件,就是n>20。随便找一种语言实现上面的递归就可以了,如下是C++的代码实现:
#define num 20#include <iostream>using namespace std;void main(){float a[num]={1,1};for(int i=2;i<num;i++){a[i]=a[i-1]+a[i-2];}for(int i=0;i<num;i++){cout<<i<<" 个单位日期后,动物的数量:"<<a[i]<<endl;}}
作者 陈字文(热衷于PM\ORACLE\JAVA等,欢迎同行交流)EMAIL:ziwen@163.com QQ:409020100
执行结果如下:
我们应该重点关注的是,如何思考这个题目,因为在实际的面试过程中,出现了斐波那契额数的变种题目,在某500强软件企业的测试中,要求小于一分钟能够做出一道类似的题目,这个必须是一个相当优秀程序员的思维。勤加练习,必有所获!
- 斐波那契数列的思维方式
- HDU5620 斐波那契数列的应用 思维 规律
- 用程序员思维、程序设计师思维两种方式写求斐波那契数列的方法。
- 斐波那契数列的两种实现方式
- 求解斐波那契数列的方式
- 斐波那契数列的三种实现方式
- python用迭代器的方式实现斐波那契数列
- 斐波那契数列的四种实现方式
- 递归思维:之类斐波那契数列
- hdu 1568关于斐波那契数列的公式及其思维技巧
- 递归方式、迭代方式实现的斐波那契数列。
- 7种方式实现斐波那契数列
- 六种方式实现斐波那契数列
- 7种方式实现斐波那契数列
- 递归和循环方式实现斐波那契数列
- 斐波那契数列多种实现方式
- 多种方式实现斐波那契数列
- python 斐波那契数列缓存方式实现
- Hadoop实战初级部分PPT及源码下载 Hadoop实战-中高级部分 PPT 和 源码 下载
- 原码、反码、补码
- 面试题:判断整数序列是不是二元查找树的后序遍历结果
- 利用POVME计算蛋白的口袋的体积
- VC获取MAC地址
- 斐波那契数列的思维方式
- Linux shell编程入门
- 解决windows下面的工程导入ubuntu下eclipse中文乱码
- IE6下Png透明最佳解决方案
- html5游戏开发--"动静"结合(一)-动态画面的实现
- 如何写程序
- 解决CentOS(RedHat)中sendmail和sm-client启动慢故障
- CKPT检查点队列
- APP被苹果App Store拒绝的79个原因(未完待续)