面试-斐波那契数列
来源:互联网 发布:error 1130 mysql 编辑:程序博客网 时间:2024/06/06 01:41
在C语言或者C++的面试中,斐波那契数列是个比较常见的题目
常见的解法 是递归
long FBNQ_DG(unsigned long n){return n <= 2?1:(PBNQ_DG(n-1)+PBNQ_DG(n-2));}然后面试官会让你考虑一种新的方法去写
另一种解法是循环
long FBNQ_FDG(unsigned long n){long result;if (n <= 2){return 1;}int last1 = 1,last2 = 1;for (int i = 0;i < n-2;i++){result = last2 + last1;last2 = last1;last1 = result;}return result;}接下来,面试官会让你比较这两种方法的效率
一般的回答是,循环的效率更高,递归会导致多次进行重复的计算。举个例子:
f(7) = f(6) + f(5) = f(5) + f(4) + f(4)+ f(3) = f(4) + f(3) + f(3) + f(2) + f(3) + f(2) + f(2) +f(1)
写道这里就不难发现f(2),f(3)计算了多次,而循环采用中间变量保存上一次计算结果,所以效率较高
这里面试官可能还会问你这样写会不会有什么问题
接下来就要考虑类型溢出的问题,因为不管是int 还是long,都是有取值范围的,如果数值过大会导致溢出。
关于大数的问题,本文不做详细解释,想要知道的同学自行搜索
1 0
- 面试训练斐波那契数列
- 面试-斐波那契数列
- 面试算法(八)斐波那契数列
- Fibonacci斐波那契数列面试与算法分析
- 斐波那契数列数列计算
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- 斐波那契数列
- windows下搭建Eclipse+android4.0开发环境
- 【HDU 5052】Yaoge’s maximum profit【树链刨分】
- Android中的布局优化方法
- 单调队列的应用
- ios storyboard 视图跳转
- 面试-斐波那契数列
- 大学(一)
- Harvard statistics 110, video 1 note(probability & counting)
- 数据类型的内存量
- 2005的表达
- 结构和大类
- Spring 标签引入和数据库连接问题
- 查看系统版本号
- Linux内核架构概述