题目描述
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。n<=39
解题思路
我们知道斐波那契数列计算公式为 F ( n ) = F ( n − 1 ) + F ( n − 2 ) \ F(n) = F(n-1) + F(n-2) F(n)=F(n−1)+F(n−2)。又知道 n 的取值范围,所以有两种做法
- 根据公式进行递归计算,直到 n == 0 或者 n == 1 的情况直接返回对应值。
- 根据公式进行递推处理,预处理出 n 范围内的所有的值。
代码实现
import java.util.Scanner;
public class Problem7 {
public static int Fibonacci(int n) {
int[] a = new int[45];
a[0] = 0;
a[1] = 1;
for(int i = 2;i <= n;i ++)
a[i] = a[i-1] + a[i-2];
return a[n];
}
public static int Fibonacci2(int n) {
if (n == 0)
return 0;
if (n == 1)
return 1;
return Fibonacci2(n-1) + Fibonacci2(n - 2);
}
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
int n = cin.nextInt();
System.out.println(Fibonacci(n));
}
}