求分数序列和-题解

描述

有一个分数序列 q1/p1,q2/p2,q3/p3,q4/p4,q5/p5,…. ,其中qi+1= qi+ pi, pi+1=qi, p1= 1, q1= 2。比如这个序列前6项分别是2/1,3/2,5/3,8/5,13/8,21/13。求这个分数序列的前n项之和。

输入描述

输入有一行,包含一个正整数n(n <= 30)。

输出描述

输出有一行,包含一个浮点数,表示分数序列前n项的和,精确到小数点后4位。

代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#include <bits/stdc++.h>
using namespace std;

int main() {
int n;
cin >> n;
double sum = 0.0;
int q = 2, p = 1;
for (int i = 1; i <= n; ++i) {
sum += double(q) / p;
int next_q = q + p;
int next_p = q;
q = next_q;
p = next_p;
}
printf("%.4lf",sum);
return 0;
}

求分数序列和-题解
https://chenxi-tijie.pages.dev/2025/07/求分数序列和-题解/
作者
chenxi
发布于
2025年7月3日
许可协议