查看所有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));
}
}