Java基础算法题(20):有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。

查看所有50道基础算法题请看:

Java的50道基础算法题

package Demo20Fraction_Sequence;
public class Fraction_Sequence {
    /**
     * 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
     */
    /*
    分析:找规律,每个分数分为两个部分,一个是分子,一个是分母
         其中,从第二个数开始,每个数的分子都等于前一个数的分子加分母
         每个数的分母都等于前一个数的分子。找到了规律,就可以用循环的方法来依次计算了。
     */
    public static void main(String[] args) {
        // 定义两个变量,一个装分子,一个装分母
        double numerator = 2;
        double denominator =1;
        // 定义一个变量来计算和,我们从第二个开始计算,所以默认是2/1=2
        double sum =2;
        // 定义一个容器变量,捣腾数据用的
        double bottle = 0;
        // 循环从第二个开始
        for (int i = 2; i <=20; i++) {
            bottle=numerator;
            numerator=numerator+denominator;
            denominator=bottle;
            sum=sum+(numerator/denominator);
        }
        // 结果保留小数点后三位数字
        System.out.println("前20项的数列和为:"+String.format("%.3f",sum));
    }
}
发布了54 篇原创文章 · 获赞 1 · 访问量 2309

猜你喜欢

转载自blog.csdn.net/weixin_44803446/article/details/105355020