码迷,mamicode.com
首页 > 编程语言 > 详细

算法题4 斐波那契数列

时间:2016-01-28 19:17:58      阅读:152      评论:0      收藏:0      [点我收藏+]

标签:

题目:

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 斐波那契数列

标签:

原文地址:http://www.cnblogs.com/wangzaizhen/p/5167166.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!