题目

有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前n项之和。

分析

分子序列和分母序列分别为初始值不同的斐波那契数列

Java实现

实现1

递归,时间复杂度高

public static void example06(){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
double sum = 0;
sum += 2/1 ;
if (n == 1) {
System.out.println(sum);
return;
}
sum += (double)3/2;
if (n == 2) {
System.out.println(sum);
return;
}
for (int i = 3; i <= n; i++) {
int a = number(2,3,i-2);
int b = number(1,2,i-2);
sum += (double)a/b;
}
System.out.println(sum);
}
public static int number(int a1,int a2,int n){
if (n == 1) return a1+a2;
return number(a2,a1+a2,--n);
}

实现2

求分子,分母

public static void example06_2(){
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int a = 2, b = 1 ; double sum = 0;
for(int i = 0;i < n ;i++) {
sum += (double) a/b ;
int temp = a;
a += b;
b = temp;
}
System.out.println(sum);
}