题目描述
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。
n<=39
思路
斐波那契是什么? 按题目要求为0、1、1、2、3、5、8、13、
可以用动态规划来解决,也就是递推,创建两个变量值记录面两位所计算的值。
也可以用递归。f(n)=f(n-1)+f(n-2)
动态规划版
public class Solution {
public int Fibonacci(int n) {
if(n==0){
return 0;
}
if(n==1){
return 1;
}
//a表示的是前面两位的值
int a=0;
//b表示前面一位的值
int b=1;
//i表示求到第几位了
int i=2;
int sum=0;
while(i<=n){
sum=a+b;
a=b;
b=sum;
i++;
}
return sum;
}
}
递归版
public class Solution {
public int Fibonacci(int n) {
if(n==0){
return 0;
}
if(n==1){
return 1;
}
return Fibonacci(n-1)+Fibonacci(n-2) ;
}
}