<!--StartFragment -->
package web;
/**
* 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和
* 分析:假定An=N/M ,根据两项之间分子与分母的变化规律,有 An+1 = (M+N)/N=1+ M/N;
* 从而有:An+1 = 1+ 1/An;
* @author zengst
* @Time
*/
public class CommonExpr {
public static void main(String args[]){
//double a=21,b=13;
//double求值时会包含小数,比如double 2/3=1.6666666
//System.out.println(a/b);
int sumN=3;
double sum = 0;
double temp = 0;
for(int i=1;i<=sumN;i++){
temp = getSum(i);
System.out.println("第"+i+"项的值是:"+ temp);
sum = sum+temp;
}
System.out.println("#############################");
System.out.println("前"+sumN+"项之和是:"+sum);
}
//求得第N项的值
public static double getSum(int n){
double An =0;
if(n==1){//第一项是2
An=2;
}else{//从第二项开始都符合
double temp = getSum(n-1);
An = 1/temp+1;
}
return An;
}
}
/**
* 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和
* 分析:假定An=N/M ,根据两项之间分子与分母的变化规律,有 An+1 = (M+N)/N=1+ M/N;
* 从而有:An+1 = 1+ 1/An;
* @author zengst
* @Time
*/
public class CommonExpr {
public static void main(String args[]){
//double a=21,b=13;
//double求值时会包含小数,比如double 2/3=1.6666666
//System.out.println(a/b);
int sumN=3;
double sum = 0;
double temp = 0;
for(int i=1;i<=sumN;i++){
temp = getSum(i);
System.out.println("第"+i+"项的值是:"+ temp);
sum = sum+temp;
}
System.out.println("#############################");
System.out.println("前"+sumN+"项之和是:"+sum);
}
//求得第N项的值
public static double getSum(int n){
double An =0;
if(n==1){//第一项是2
An=2;
}else{//从第二项开始都符合
double temp = getSum(n-1);
An = 1/temp+1;
}
return An;
}
}