请大神看看,为什么程序运行结果和计算器计算结果不一样?

来源:10-3 Java 中的抽象类

慕圣4527065

2017-04-11 18:58

求2/1+3/2+5/3+8/5+13/8=?

public class HelloWorld {

  public static void main(String[] args) {

double sum = 0.0;

double fz = 2.0;

double fm = 1.0;

for(int i = 0; i <= 5; i ++){

sum += (fz / fm);

fm = fz;

fz += fm;

}

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

  }

}



写回答 关注

3回答

  • 啦啦啦诺克萨斯
    2017-04-11 20:00:14
    已采纳
    double sum = 0.0;
    		double fz = 2.0;
    		double fm = 1.0;
    		double t = 0.0;
    		for(int i = 0; i <= 4; i ++){
    		sum += (fz / fm);
    		t=fm;
    		fm = fz;
    		fz += t;
    		
    		
    		}
    		System.out.println("sum:"+sum);


    慕圣4527...

    我也不清楚这个积分是干嘛的

    2017-04-12 15:44:47

    共 2 条回复 >

  • qq_随心_57
    2017-04-11 20:31:35

    public class HelloWorld {

    两个值交换,需要用一个中间值进行转化一下。

    public static void main(String[] args) {

    double sum = 0.0;

    double fz = 2.0;

    double fm = 1.0;

    double t=0.0;

    for (int i = 0; i <5; i++) {

    sum += (fz / fm);

    t=fz;

    fz += fm;

    fm = t;

    }

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

    }


    慕圣4527...

    谢谢你!

    2017-04-12 13:05:06

    共 1 条回复 >

  • 啦啦啦诺克萨斯
    2017-04-11 19:55:29

    i=0时 fz = 2.0 fm = 1.0  sum = 2.0   当i = 1时, fm = fz = 2  fz+=fm(fz = fz+ fm = 2+2=4)  此时sum = 2.0 按你代码以此类推 当然不一样 

Java入门第二季 升级版

课程升级!以终为始告别枯燥,在开发和重构中体会Java面向对象编程的奥妙

530645 学习 · 6091 问题

查看课程

相似问题