参考代码如下:
//新建一个类,名为Sum,用于输出题目已知分数序列前20项的和
public class Sum{
public static void main(String[] args){
double sumNum = sum(20); //定义一个变量sumNum,调用sum()方法作为它的初始值
System.out.println("前20项的和为:"+sumNum); //在控制台输出结果
}
//定义一个方法,用于求和
public static double sum(int num){
if(num == 1){ //如果只有一项,那么直接返回2.0/1.0的结果
return 2.0/1.0;
}else{//否则,按照规律,分母永远是前一个数的分子,只需要调用getMolecule()方法获得分子即可
double a = getMolecule(num); //a为分子
double b = getMolecule(num-1); //b为分母
return sum(num-1)+a/b; //求和结果就是前一个结果加上最后一个分式的和
}
}
//定义一个方法getMolecule(),用于获得分子
public static double getMolecule(int num){
if(num == 1){ //如果只有一项,该分数的分子为2.0
return 2.0;
}else if(num == 2){ //如果有两项,该分数的分子为3.0
return 3.0;
}else{
//按照规律,除前两项之外,从第三项开始,它的分子是由前两项的分子之和组成的
return getMolecule(num-1) + getMolecule(num-2);
}
}
}
注:在这里我选择的数据类型为double,但是一般情况下不需要如此精确,建议选用float类型,节省资源且快速有效。
运行结果截图如下: