题解
求分数序列和
1 条题解
-
0
解题思路
分数序列
q_i/p_i的每一项满足:q_{i+1} = q_i + p_i,p_{i+1} = q_i,初始p=1, q=2(即 2/1)。每一项循环里:先累加
q/p,再按规律算出下一项的分子分母。保留 4 位小数输出。参考代码
#include <cstdio> using namespace std; int main() { int n; scanf("%d", &n); int p = 1, q = 2; // 第一项 q1/p1 = 2/1 double sum = 0; for (int i = 0; i < n; i++) { sum += (double)q / p; // 累加当前项 int nq = q + p; // 下一项分子 p = q; // 下一项分母 q = nq; } printf("%.4lf\n", sum); // 保留4位小数 return 0; }复杂度分析
循环 n 次,时间复杂度 O(n),额外空间复杂度 O(1)。
- 1