剑指Offer面试题9[斐波那契数列]
2017-07-19 17:38
218 查看
1.题目描述:
写出一个函数,输入整数n,求斐波那契(Fibonacci)数列的第n项。求斐波那契数列的定义如下:f(n)=⎧⎩⎨⎪⎪01f(n−1)+f(n−2)n=0n=1n>1
2. 相关知识:
递归算法简单易于实现、代码清晰,但效率远不如循环,在递归层次过时很容易栈溢出。但是,面试时尽可能采用递归,可以更清晰地表达解题思路。3. 解答思路:
可以使用递归的方法实现,但是,递归会导致很多重复的计算。所以,本题宜采用循环算法实现。4. 代码实现:
#include<stdio.h> long long Fibonacci(unsigned int n) { if(n == 0) return 0; if(n == 1) return 1; long long result = 0; long long minusOne = 1; long long minusTwo = 0; unsigned int i = 2; for (; i<=n; i++) { result = minusOne + minusTwo; minusTwo = minusOne; minusOne = result; } return result; } int main() { int n[] = {3,5,10,0,1,2,40,50,100}; int i = 0; for(i=0; i<9; i++) printf("in: %d, out:%lld\n", n[i], Fibonacci(n[i])); return 0; }
相关文章推荐
- 剑指Offer_面试题09_斐波那契数列
- 剑指offer面试题9 斐波那契数列
- 剑指offer:面试题9,斐波那契数列
- 剑指offer 面试题9 斐波那契数列
- 剑指offer-面试题 9 斐波那契数列
- 剑指Offer----面试题九:斐波那契数列
- 《剑指Offer》面试题九之斐波那契数列
- 剑指offer——面试题9:斐波那契数列
- 《剑指offer》面试题10:斐波那契数列(含矩阵乘法解法)
- 剑指Offer面试题9(java版):斐波那契数列
- 面试题09_斐波那契数列及其变种详解——剑指offer系列
- 剑指Offer面试题10:斐波那契数列
- 剑指Offer学习之面试题9 : 斐波那契数列
- 剑指Offer系列-面试题9:斐波那契数列
- 《剑指offer》(面试题9):斐波那契数列
- 《剑指Offer》学习笔记--面试题9:斐波那契数列
- 剑指offer面试题 斐波那契数列
- 剑指Offer(第二版)面试题10:斐波那契数列
- (剑指Offer)面试题9:斐波那契数列
- 剑指offer-chapter2-面试题9-斐波那契数列(java)