public class FirstTopic02 {
public static void main(String[] args) {
/**
* 题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和。
*/
float sum=0f;
for(int i=0;i<20;i++) {
sum+=fibTop(i+1)/fibBottom(i+1);
}
System.out.println(sum);
}
/**
* 只看分母就是:1,2,3,5,8...是菲波那切数列,从第三项开始是前两项的和
* @param i
* @return
*/
private static float fibTop(int i) {
if(i==1) return 2.0f;
if(i==2) return 3.0f;
return fibTop(i-1)+fibTop(i-2);
}
/**
* 只看分子就是:2,3,5,8,13....也是菲波那切数列
* @param i
* @return
*/
private static float fibBottom(int i) {
if(i==1) return 1.0f;
if(i==2) return 2.0f;
return fibBottom(i-1)+fibBottom(i-2);
}
}