請大神看看,為什么程序運行結果和計算器計算結果不一樣?
求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);
? }
}
2017-04-11
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);2017-04-11
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);
}
2017-04-11
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 按你代碼以此類推 當然不一樣?