首先要知道什么是斐波那契数列,比如1,1,2,3,5,8,13,21,34...比如输入n=3,那么求出的值就是2,所以题目就是,输入n,求斐波那契数列的第n项值
分析
斐波那契就是当前的是它之前-1的数+它之前-2的数的和, 使用一个表达式就是f(n)=f(n-1)+f(n-2),所以第一种求解方案可以使用递归的方式,但是这方式不推荐使用,性能不好,也就是说空间复杂度比较高
递归求解
package com.yaqi;
public class FindValue {
public static void main(String[] args) {
int value = find(2);
System.out.println("value="+value);
}
public static int find(int n){
int sum;
if(n==0||n==1){
return 1;
}
sum = find(n-1)+find(n-2);
return sum;
}
}
第二种求解方案就是记录前一个的值和前二个的值,把他们的和记录下来,
public static int fibonacci(int n) {
if (n <= 0) {
return 0;
}
if (n == 1 || n == 2) {
return 1;
}
// 第n-2个的Fibonacci数的值
int prePre = 1;
// 第n-1个的Fibonacci数的