高分悬赏,Java语言如何计算 1+1+1/2+1/3+1/5+1/8+1/13...这个等式的前20项

高分悬赏,Java语言如何计算 1+1+1/2+1/3+1/5+1/8+1/13...这个等式的前20项

算法思路,分母是奇数,规则为 2N+1 ,循环 N的范围 【0-20),此外要考虑到类型必须定义为 double 或者 float ,最后循环累加:

float sum = 0.00;
for(int n=0;n<20;n++){
  sum=sum + (float)1/(2*n+1)
}

这个东西的答案会无限趋近于3,如果使用程序计算,就会因为精度问题输出答案 3,你要的是这样的答案吗? 或者可以用分数的形式分别输出分子与分母

int previouseOne=0;
int previouseTwo=1;
float count=1;
for(int i=0;i<20;i++) {
count += ( (float)1 / (float)(previouseOne+previouseTwo) ) ;//0+1,1+1,1+2,2+3
int temp=previouseTwo;//1,1,2,3
previouseTwo=previouseOne+previouseTwo;//0+1,1+1,1+2,2+3
previouseOne=temp;//1,1,2,3
}
System.out.println(count);