6 回答

TA贡献1条经验 获得超1个赞
public static void main(String[] args) {
int j=2,k=1,temp; //temp用于下方交换,j为分子,k为分母
double sum=0.0;
for(int i=1;i<=20;i++){
sum=sum+(double)j/k;
//发现规律为后者的分子等于前2者的分子相加,后者的分母等于前者的分子,所以用交换方法
temp=j;
j=j+k;
k=temp;
}
System.out.println(sum);
}

TA贡献6条经验 获得超3个赞
根据规律,从第二个数开始,。当前数等于1加上它前一个数的倒数。所以把第一个数抽出来。
public int count(){
double sum=0;// 定义一个计算和值的变量
double[] count=new double[20]; //定义一个长度为20的数组存放前20项的值
count[0]=2/1; //将第一项抽出来单独赋值
for(int i=1;i<20;i++){
count[i]=1+ 1/count[i-1]; //当前项的值等于1加上 前一项的倒数,用递归的方法求值
sum+=count[0]; //求前20项的值
}
//这个方法 没有进行分数优化,就是数据类型会自动转成double, 我这边不知道让他如何进行分数运行。所以有点遗憾
添加回答
举报