剑指offer之斐波那契数列
大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。
n<=39
public class Solution {
public int Fibonacci(int n) {
if (n < 2) {
return n;
}
return Fibonacci(n - 1) + Fibonacci(n - 2);
}
}
//方法二
public class Solution {
public int Fibonacci(int n) {
if(n < 2) {
return n;
}
int result = 0;
int one = 1;
int two = 0;
for(int i = 2; i <= n; i++) {
result = one + two; //i-1 i-2
two = one;
one = result;
}
return result;
}
}
//方法三
public class Solution {
public int Fibonacci(int n) {
if(n == 0) {
return 0;
}
int[] result = new int[40];
result[0] = 1;
result[1] = 1;
result[2] = 2;
for(int i = 3; i < 40; i++) {
result[i] = result[i - 1] + result[i - 2];
}
return result[n - 1];
}
}