大家都知道斐波那契数列,现在要求输入一个整数n,(java)
1. 题目描述
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0,第1项是1)。
n<=39
2. 解题思路
(1)这道题是一道非常常规的题目,首先你要知道斐波那契数列是什么意思。然后观察数组的关系,发现一个数组的值一般等于前两个和的值(前面三个例外),可以用for或者直接递归即可。
(2)这道其他解法…(动态规划)
3. 代码实现
(1)
public class Solution {
//1,1,2
public int Fibonacci(int n) {
if(n == 1 || n ==0)
return n;
if(n == 2)
return n-1;
return Fibonacci(n-1)+Fibonacci(n-2);
}
}
for实现
public class Solution {
//1,1,2
public int Fibonacci(int n) {
if(n == 0)
return 0;
if(n == 1)
return 1;
int result = 0;
int one = 1;
int two = 0;
for(int i = 2; i <= n; i++){
result = one + two;
two = one;
one = result;
}
return result;
}
}
(2)动态规划实现(数组实现)
public class Solution {
//1,1,2
public int Fibonacci(int n) {
if(n == 0)
return 0;
if(n == 1)
return 1;
int[] a = new int[n+1];
a[0] = 0;
a[1] = 1;
for (int i = 2; i < n+1; i++) {
a[i] = a[i - 1] + a[i - 2];
}
return a[n];
}
}