题目:斐波那契数列(Fibonacci)又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)= 0,F(1)= 1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*),请使用递归方式计算第 20 个数为多少 ?
一、核心代码如下:
package homework10.homework1028;
import java.util.Scanner;
public class Demo {
public static void main(String[] args) {
int f1 = f1(20);
System.out.println("第一种方法得出的结果为:"+f1);
int f2 = f2(20);
System.out.println("第二种方法得出的结果为:"+f2);
f3(20);
Scanner scan = new Scanner(System.in);
System.out.println("请输入n: ");
int n = scan.nextInt();
int sum = 0;
for (int i = 1; i <= n; i++) {
sum+=f1(i);
}
System.out.println("斐波那契数列的前"+n+"项和为:"+sum);
}
public static int f1(int n){
if(n == 1){
return 0;
}
if(n == 2 || n == 3){
return 1;
}
return f1(n-1)+f1(n-2);
}
public static int f2(int n){
if(n == 1 || n == 2){
return 1;
}
return f2(n-1)+f2(n-2);
}
public static void f3(int n){
int[] array = new int[n];
array[0] = 0;
array[1] = 1;
for (int i = 2; i < n; i++) {
array[i] = array[i-1]+array[i-2];
if(i == (n-1)){
System.out.println("第三种方法得出的结果为:"+array[i]);
}
}
}
}
二、代码运行结果如下:
