算法题4 斐波那契数列
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了算法题4 斐波那契数列相关的知识,希望对你有一定的参考价值。
题目:
Fibonacci数列定义如下:
输入n,求f(n)
分析:
在剑指offer上有个O(logn)的算法,本文只做O(n)算法的分析。这其实是一个简单的动态规划问题,问题的结果跟子问题的结果相关,关系式已经给出了,计算中需要保存子问题的结果
跳台阶问题:一个台阶一共有n阶,一次起跳可以跳一阶,也可以跳二阶。问总共有多少中跳法,并对时间复杂度进行分析。该问题也是典型的Fibonacci数列问题,第一次跳1个台阶,接下来有f(n-1)中跳法,第一次跳2个台阶,则接下来有f(n-2)个跳法。
代码
long Fibonacci(unsigned int n) { unsigned int fn=n,fn1=1,fn2=0; unsigned int x=2; while (x<=n) { fn=fn1+fn2; fn1=fn; fn2=fn1; x++; } return fn; }
以上是关于算法题4 斐波那契数列的主要内容,如果未能解决你的问题,请参考以下文章