使用c++有一分数序列2/1,3/2,5/3,8/5,13/8,21/13...邱处这个数列的前20项之和。
时间: 2023-10-31 14:04:36 浏览: 87
这个数列可以看出是斐波那契数列的一种变形,第n项的分子为第n+1个斐波那契数,分母为第n个斐波那契数。因此,我们可以先用循环来计算前20个斐波那契数,然后再根据上述规律计算分数序列,并求和。
下面是C++代码实现:
```c++
#include <iostream>
using namespace std;
int main()
{
int n = 20; // 求前20项
double sum = 0;
double a = 1, b = 1, c; // 前两个斐波那契数初始化为1
for (int i = 3; i <= n+2; i++) {
c = a + b;
sum += (c/b); // 计算分数序列并累加
a = b;
b = c;
}
cout << "前20项分数序列之和为:" << sum << endl;
return 0;
}
```
输出结果为:
```
前20项分数序列之和为:32.6603
```
相关问题
使用c++有一分数序列2/1,3/2,5/3,8/5,13/8,21/13...求出这个数列的前20项之和
这个数列可以看出是斐波那契数列的每一项分子和分母对应的值,可以按照斐波那契数列的递推公式来计算:
```
f[0] = 1, f[1] = 1;
for (int i = 2; i <= 20; i++) {
f[i] = f[i-1] + f[i-2];
}
```
计算出斐波那契数列的前20项之后,就可以计算出这个数列的前20项,然后将它们相加即可:
```c++
double sum = 0.0;
for (int i = 0; i < 20; i++) {
sum += (double)f[i+1] / f[i];
}
cout << sum << endl;
```
注意要将分子和分母都转换为浮点数类型再相除,否则会得到一个整数结果。
用c++写以下程序:有一分数序列: 2/1 3/2 5/3 8/5 13/8 21/13...... 求出这个数列的前N项之和
以下是用C语言实现这个程序的代码:
#include <stdio.h>
int main() {
int i, n, t1 = 2, t2 = 1, nextTerm;
float sum = 0;
printf("输入要计算的数列项数: ");
scanf("%d", &n);
for (i = 1; i <= n; ++i) {
sum += (float)t1 / t2;
nextTerm = t1 + t2;
t1 = t2;
t2 = nextTerm;
}
printf("前%d项之和为%.2f\n", n, sum);
return 0;
}
如果您有更多的问题,请随时问我。
阅读全文