斐波那契数列
题目描述
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。
n≤39
示例1
输入 4
返回值 3
package 牛客;/*
*@Author: helen
*@Date: 2021/4/22 11:56
*@Description:
题目描述
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。
n≤39
示例1
输入 4
返回值 3
*/
public class 斐波那契数列 {
//方法一:递归,时间复杂度过高
public int Fibonacci(int n) {
if(n <= 1)
return n;
return Fibonacci(n - 1) + Fibonacci(n - 2);
}
//方法二:循环
public int Fibonacci02(int n){
if(n <= 1)
return n;
int cur = 0;
int t1 = 0;
int t2 = 1;
for (int i = 2; i <= n; i++) {
cur = t1 + t2; //记录第i项的斐波那契数列的值
t1 = t2; //记录第i-1项的斐波那契数列的值
t2 = cur; //记录第i-2项的斐波那契数列的值
}
return cur;
}
public static void main(String[] args) {
斐波那契数列 obj = new 斐波那契数列();
System.out.println(obj.Fibonacci(5));
System.out.println(obj.Fibonacci02(5));
}
}