有一个分数序列
  2/1,3/2,5/3,8/5,13/8.........求出该数列的前20项之和
我这样的写的
public class Test8 { /**
 * @param args
 */
public static void main(String[] args) {
double p=2,q=1; //分别是分子和分母
double x=p/q;
double sum=0;
for(int i=1;i<=20;i++){
System.out.println("P:"+p+" q:"+q+" p/q="+x);
double temp=p;
sum+=x;
p=p+q;
q=temp;
}
      System.out.println(sum);
}}
但结果不对,p/q总是等于2.0;这是为什么了,是不是写的不对

解决方案 »

  1.   

    public static void main(String[] args) {
    double p = 2, q = 1; // 分别是分子和分母
    double x = p / q;
    double sum = 0;
    for (int i = 1; i <= 20; i++) {
    System.out.println("P:" + p + " q:" + q + " p/q=" + x);
    double temp = p;
    sum += x;
    p = p + q;
    q = temp;
    x = p / q;//少了这句
    }
    System.out.println(sum);
    }