前项列和计算功能关键算法


有一分数序列: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项之和。

package Third;

public class three {
    public static void main(String[] args) {
        float sum = 0; //定义sum用来保存前20 项的和
        float a = 1, b = 1;    // 定义初始值
        float temp;    //定义temp
        for (int i = 1; i <= 20; i++) {
            /**

              第一次循环:		第二次循环:		第三次循环:	。。。。。。。
              temp=a=1;		temp=a=1; 		temp=a=2
              a =b =1;			a=b =2			a=b=3
              b =b+temp=1+1=2;	b=b+temp=2+1=3	b=b+temp=3+2=5
              b/a				b/a				b/a
              2/1				3/2				5/3

             */
            temp = a;    //把分子赋给temp(一个变量,用来存放一次循环赋的值)
            a = b;        //分母赋值给分子
            b += temp;    //分母等于分子加上temp >>  b = b + temp
            sum = sum + b / a;//求和


        }

        System.out.println("前二十项的和为" + sum); // 输出sum的值 :32.660263
    }
}

  

posted @ 2020-03-19 18:07  初雨了然  阅读(456)  评论(0)    收藏  举报