有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13求出这个数列的前 20 项之和.要求:利用循环计算该数列的和。注意 a1=2, b1=1, c1=a1/b1; a2=a1+b1, b2=a1, c2=a2/b2; a3=a2+b2, b3=a2, c3=a3/b3; s = c1+c2+…+c20; s 即为分数序列2/1,3/2,5/3,8/5,1/8,

public class a {
    public static void main(String[] args) {
        /**
         *题目3:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13 … 求出这个数列的前
         * 20 项之和。
         * 要求:利用循环计算该数列的和。注意分子分母的变化规律。
         * 注意:
         * a1=2, b1=1, c1=a1/b1;
         * a2=a1+b1, b2=a1, c2=a2/b2;
         * a3=a2+b2, b3=a2, c3=a3/b3;
         * …
         * s = c1+c2+…+c20;
         * s 即为分数序列:2/1,3/2,5/3,8/5,13/8,21/13 … 的前 20 项之和。
         *
         *
         */
        //初始值a1=2,b1=1 c1=2;
        // a2 =3 ,b2=2 ,c2=a2/b2;
      int a1 =2 ,b1=1,c1=2;
      int a2=a1+b1,b2=a1;
      double c2=(double) 3/2;   //因为可以看出 a2/b2,由于b2=a1=2
      double sum=0;
      for (int i=3 ;i<=20;i++){   //由于排除c1和c2
           int an ,bn;
           double cn;
           an =a2+b2; //从a3开始算,a3=a2+b2
           bn=a2;   //b3=a2;
           cn=(double) an/bn;  //c3=a3/b3
           sum+=cn;
           a2=an; // 这里把 a2=a3 ;
           b2=bn;  //b3=a2;
      }
        System.out.println(c1+c2+sum);
   }
}

 

posted @ 2023-12-09 20:45  GOZO  阅读(631)  评论(0)    收藏  举报