算法题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 斐波那契数列的主要内容,如果未能解决你的问题,请参考以下文章

2021/6/10 刷题笔记斐波那契数列+泰波那契数

最强解析面试题:Goland 并发版斐波那契数列

最强解析面试题:Goland 并发版斐波那契数列

C++面试题:斐波那契数列

Python100例斐波那契数列

ABAP算法题:斐波那契(Fibonacci)数列