面试题之斐波那契数列
来源:互联网 发布:芒果tv mac版 编辑:程序博客网 时间:2024/06/06 16:26
简介:
斐波那契数列是意大利著名的数学家,他最重要的研究成果是在不定分析和数学论方面,他的斐波那契数列成为世人热衷研究的问题。
*:面试此题的几率也很大。
特点:
a1,a2已知
a(n)=a(n-1)+a(n-2) n>=3
应用:
兔子繁殖问题,树枝问题,上楼方式问题,蜂房问题,声音问题,花瓣问题。。。。。
详解:
楼梯上有n阶台阶,上楼时可以一步上一阶,也可以上2阶,编写算法计算到第二阶共有多少种不同的上楼梯方式。
数学模型:从问题按照习惯,从前向后思考,也就是从第一阶开始,考虑怎么到第二阶,第三阶....则很难找出问题
的规律;而反过来先思考“到n阶有几种情况”,答案就简单了,只有两种情况。
从第n-1 阶到第n阶
从第n-2阶到第n阶
int feibonaqie(int n){if (0== n || 1== n){return n;}return feibonaqie(n - 1) + feibonaqie(n-2);}但仅仅就这样吗?不,当n>=100时,在运行程序时,电脑会一段时间没反应,原因是上面程序的函数占用了大量
CPU的资源。所以我们提出了优化方案:
将递归转换为循环,当n很大时,可以大大提高效率。
#include<iostream>#include<stdlib.h>using namespace std;int feibonaqie2(int n){if (0== n || 1 == n){return n;}else{int pre = 1, post = 1;// 1 2int fn = 0; //等于其前面两个元素值得和for (int i = 3; i <= n; i++){fn = pre + post;pre = post;post = fn;}return fn;}}int main(){int f = feibonaqie2(3);cout << f << endl;return 0;}
还有其他方法下次总结,不足之处,多多指教。
阅读全文
0 0
- 面试题之斐波那契数列
- 面试题斐波那契数列
- 面试题整理-斐波那契数列
- 面试题9:斐波那契数列
- 【面试题九】斐波那契数列
- 【剑指offer】面试题9:斐波那契数列
- 剑指offer 面试题9 斐波那契数列
- 剑指Offer:面试题9 斐波那契数列
- 面试题9 斐波那契数列
- 面试题9:斐波那契数列
- 面试题9 斐波那契数列
- 面试题9:斐波那契数列
- 面试题9 斐波那契数列
- 面试题9:斐波那契数列
- 面试题9 斐波那契数列
- 面试题9:斐波那契数列
- 斐波那契数列 兔子表述 面试题
- 面试题11:斐波那契数列(offer)
- spring的JDBC的连接
- mybits-xml-sql时间格式转换
- juicer实现表格显示,增加或删除一条数据
- 巨杉数据库 王涛:如何打造金融级数据库
- 运行hadoop MapReduce程序常见错误及解决方法整理
- 面试题之斐波那契数列
- 工业界| 李飞飞:图像识别已达认知心理学水平
- 干货|Golang Programming Style(上)
- 为什么Python?
- SpringBoot 启动报错:Unable to start embedded
- 跟我学习dubbo-ZooKeeper注册中心安装(2)
- 电费计算
- android sdk | API level 24 | android
- 磁盘驱动