c++求2/1,3/2,5/3,8/5,13/8...这个数列的前20项之和。
时间: 2023-12-13 22:23:10 浏览: 46
这是一个斐波那契数列的变形,可以使用循环来计算前20项的和。以下是使用C++语言的代码实现:
```c++
#include <iostream>
using namespace std;
int main()
{
int num1 = 2, num2 = 1; // 初始化前两项
double sum = 0; // 初始化和
for (int i = 1; i <= 20; i++)
{
sum += static_cast<double>(num1) / num2; // 将num1转换为double类型,避免整数除法
int temp = num1;
num1 += num2;
num2 = temp;
}
cout << "前20项之和为:" << sum << endl;
return 0;
}
```
输出结果为:
```
前20项之和为:32.6603
```
注意,由于使用了double类型,输出结果可能存在精度误差。
相关问题
使用c++求2/1,3/2,5/3,8/5,13/8,21/13...这个数列的前20项之和。
这个数列可以看成是斐波那契数列的有理数版本,可以使用循环来计算前20项之和。以下是C++代码实现:
```c++
#include <iostream>
using namespace std;
int main() {
int n = 20;
int a = 2, b = 1, c;
double sum = 0;
for (int i = 1; i <= n; i++) {
sum += (double)a / b;
c = a + b;
b = a;
a = c;
}
cout << "前" << n << "项之和为:" << sum << endl;
return 0;
}
```
输出结果为:
```
前20项之和为:32.6603
```
用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;
}
如果您有更多的问题,请随时问我。
阅读全文