斐波那契数列(Fibonacci sequence)指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、0、1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:
F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 3,n ∈ N*)
题目描述
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。
n<=39
示例1
输入
4返回值
3
public class Solution {
public int Fibonacci(int n) {
// return Fibonacci(n) + Fibonacci(n-1);
return Fibonacci2(n);
}
public int Fibonacci2(int n){
//arr[0]=0 arr[1]=1 数组前2个元素是边界值 先放进去,第n个再存进去 所以是n+2的长度
int[] arr = new int[n+2];
int i;
arr[0] = 0;
arr[1] = 1;
if(n == 0){
return arr[0];
}else if(n == 1){
return arr[1];
}else{
//从斐波那契的0 1 1 2 3 5....的第2个元素开始往后推算
for(i=2;i<=n;i++){
arr[i] = arr[i-1] + arr[i-2];
}
return arr[n];
}
}
}