什么是斐波拉契数列?
1,1,2,3,5,8,13…n
观察数列可得,除了第一项和第二项,所有的数列的值都是前一项和前一项的前一项的和,根据这个规律我们就能求出n的值
接下来我们使用两种方式求n的值
第一种使用数组:
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
f1(sc.nextInt());
}
public static void f1(int n) {
int[] arr = new int[n];
//因为第1个,第2个位数是已知的,都是1,所以数组的第1个元素,第2个元素值都是1
arr[0] = 1;
arr[1] = 1;
//用循环实现计算n的值
for (int x = 2; x < arr.length; x++) {
arr[x] = arr[x - 2] + arr[x - 1]; //下标从2开始,那么arr[2]的值就是arr[0] + arr[1],然后以此类推
}
System.out.println(arr[n-1]);
}
}
第二种使用递归的方式:
public class Test {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
f1(sc.nextInt());
}
public static int f1(int n) {
if(n < 1) {
return 0;
}else if(n == 1 || n == 2) {
return 1;
}
return f1(n-1) + f1(n-2);
}
}