JAVA 求1/2+2/3+3/5+5/8+8/13+13/21 ... 前20项之和。

publicclassFujia{publicstaticvoidmain(String[]args){intI=1;doubleA=1;doubleB=1;double... public class Fujia {
public static void main(String[] args){
int I = 1;
double A = 1;
double B = 1;
double sum = 0;
while (I <= 10){
sum = sum + A/B;
System.out.println("和为:"+sum);
A = B + A;
sum = sum + B/A;
B = A + B;
I++;
};

System.out.println("和为:"+sum);

}

}
有没有人能为我解释一下,第一次循环的时候SUM是不是不对啊,总感觉不对啊,谁能为我解释一下思路!谢谢
展开
 我来答
198901245631
推荐于2018-04-01 · TA获得超过3.5万个赞
知道大有可为答主
回答量:9037
采纳率:92%
帮助的人:1690万
展开全部

分析规律:分子为前两个分子之和,分母为前两个分母之和。

 public static void main(String[] args) {
               double sum = 0;
               int n = 1;
               int m = 1;
               int j;
               for(int i=1; i<=20; i++) {
                      sum = sum + m/(double)(m+n);
                      j = m; 
                      m = m+n;
                      n = j;
               }
             System.out.println("sum=" + sum);
          }

输出结果:sum=12.278294788817238。

TiooBeoo
推荐于2017-09-21 · TA获得超过542个赞
知道小有建树答主
回答量:283
采纳率:0%
帮助的人:267万
展开全部
你是1/2开始加的 为什么前面sum = sum + A/B要加个1呢

public static void main(String[] args){
int I = 1;
double A = 1;
double B = 2;
double sum = 0;
while (I <= 20){
sum = sum + A/B;
if (I!=1){
System.out.println("第"+(I-1)+"次相加的和为:"+sum);
}
double temp = B;
B = B + A;
A = temp;
I++;
};
}
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
SUKIYOU
2012-11-22 · TA获得超过995个赞
知道小有建树答主
回答量:1505
采纳率:0%
帮助的人:1229万
展开全部
double A = 1;
double B = 2;
sum = sum + A/B;
while (I <= 10){
double temp = B;//先把B的值保存下来
B= A+B;//分母为上一次分子和分母的和
A= temp ;//分子为上一次的分母
sum = sum + A/B;
I++;
};
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
天生丶无双
2018-05-07 · TA获得超过165个赞
知道答主
回答量:4
采纳率:0%
帮助的人:3207
展开全部
double num = 0;//声明和sum
for(double i=1;i<=20;i++){
//20次循环,double类型是因为计算会有小数,int 类型计算回忽略小数
num += (i/(i+1));//记录和sum的值,
//i=1的时候 num = num+(i=1/(i+1=2)) 就是num = 0+(1/2)
}
System.out.println("和为:"+num);//循环完毕输出
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
还是盛大
2018-04-01
知道答主
回答量:22
采纳率:0%
帮助的人:5.6万
展开全部
//题目:求1/2+2/3+3/5+5/8+8/13+13/21 ... 前20项之和。

/*分析题目:可观察题目得知:从第二项开始,每一项分数的分母等于上一项的分子,分子等于
上一项的分子加分母,因为我们先需要定义三个变量,int i = 1,j = 2;double sum=0.0(i为分
母,j为分子,sum为总和);*/
//因此代码如下:
import java.util.Scanner;    
public class fengge{  
public static void main(String[] args ){  
int i = 1,j = 2,temp=0;  //temp为中间变量
double sum = 0.0;
for( int t = 1;t < =20;t++){  //题意为前20项的和,因此t<=20
      System.out.println(j*1.0/i); 
      temp = i;//用temp存储中间变量交换分子和下一项的分母值
      i = j;  
      j += temp; //新的分子值等于上一项分数分母与分子的和
      sum += j*1.0/i;  //求和   
  }
 System.out.println("前20项之和为:"+sum);  //输出和   
 }  
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式