C++编程从键盘输入n的值,求分数序列1,1/2,2/3,3/5,5/8……前n项的和
时间: 2023-10-29 14:07:12 浏览: 112
以下是求分数序列和的 C++ 代码:
```c++
#include <iostream>
using namespace std;
double calcSum(int n) {
double sum = 0;
double a = 1, b = 1, c;
for (int i = 1; i <= n; i++) {
sum += a / b;
c = a + b;
a = b;
b = c;
}
return sum;
}
int main() {
int n;
cout << "请输入 n 的值:";
cin >> n;
double sum = calcSum(n);
cout << "分数序列前 " << n << " 项的和为:" << sum << endl;
return 0;
}
```
样例输入输出:
```
请输入 n 的值:5
分数序列前 5 项的和为:3.81
```
代码解释:
这个程序首先读入一个整数 n,表示要求分数序列的前 n 项的和。接着,调用 calcSum 函数,计算出分数序列前 n 项的和,并将结果存储在变量 sum 中。最后,程序输出 sum 的值。
calcSum 函数的实现如下:
1. 定义变量 sum,表示分数序列前 n 项的和,初始值为 0。
2. 定义变量 a 和 b,分别表示分数序列的分子和分母,初始值为 1。
3. 用 for 循环计算分数序列前 n 项的和。循环从 i = 1 开始,到 i = n 结束。在每次循环中,将 a / b 加到 sum 中。然后,计算出下一项的分数,即 c = a + b,将 a 赋值为 b,将 b 赋值为 c,以便计算下一项。
4. 循环结束后,返回 sum 的值。
这个程序的时间复杂度为 O(n),因为它需要计算分数序列前 n 项的和。在计算分数序列时,需要迭代 n 次,每次迭代需要进行一些简单的加法、赋值和除法运算,时间复杂度为 O(n)。因此,整个程序的时间复杂度也为 O(n)。
阅读全文