您的位置:首页 > 其它

斐波那契数列

2017-11-12 22:19 162 查看
题目描述

大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项。

n<=39

科普:斐波那契数,亦称之为斐波那契数列(意大利语: Successione di Fibonacci),又称黄金分割数列、费波那西数列、费波拿契数、费氏数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1,Fn=Fn-1+Fn-2(n>=2,n∈N*),用文字来说,就是斐波那契数列列由 0 和 1 开始,之后的斐波那契数列系数就由之前的两数相加。

方法一:递归,很常用的方法,但是因为运算起来太复杂,会报错超出时间之类的

class Solution {
public:
int Fibonacci(int n) {
if(n==0)
return 0;
if(n==1)
return 1;
return Fibonacci(n-1)+Fibonacci(n-2);
}
};


方法二:动态规划,每次只用两个数来回的右移。时间复杂度达到了O(n)

class Solution {
public:
int Fibonacci(int n) {
int f=0,g=1;
while(n-->0)
{
g=f+g;
f=g-f;

}
return f;
}
};
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: