(问答题)
二年级的张三学到了分数
他想出了一个有趣的分数序列
2/1, 3/2, 5/3, 8/5, 13/8, 21/13
张三想知道, 这个序列的前n项之和是多少
输入n(1 < n < 50), 求该序列的前n项之和(精确到小数点后4位)
样例输入: 2
样例输出: 3.5在这里插入代码片
import java.util.Scanner;
/**
- @author lrz
- @create 2021-07-04-15:19
*/
public class Fraction {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int x = scanner.nextInt();//输入前n项
double sum = 0 ; // 总数
double a = 2 ;
double b = 1 ;
double c = 0;
for (int i = 1; i <= x; i++){
sum += a / b; //算出总值
c = a; //规律是 后一个分数的分子等于前一项的分子分母之和 后一个分数的分母等于前一项的分母子
a = a + b;// 然后需要更新 ab的值 c用来保证之前的a不变
b = c;
}
System.out.println(String.format("%.4f",sum));//格式化输出
}
}