用c++写以下程序:有一分数序列: 2/1 3/2 5/3 8/5 13/8 21/13...... 求出这个数列的前N项之和
时间: 2023-05-21 19:07:04 浏览: 187
以下是用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;
}
如果您有更多的问题,请随时问我。
相关问题
用C++编写程序:有一分数序列 2/1,3/2,5/3,8/5,13/8,21/13……求出这个数列前20项之和
这是一个著名的数学问题,被称为“斐波那契数列”(Fibonacci sequence)的倒数形式。斐波那契数列是一个每个数都是前两个数之和的数列:0, 1, 1, 2, 3, 5, 8, ...。在这个分数序列中,分子就是第n个斐波那契数,分母则是n-1。
为了计算前20项之和,我们可以创建一个C++程序,使用循环结构生成并累加每一项。以下是简单的C++代码实现:
```cpp
#include <iostream>
#include <vector>
// 斐波那契数列函数
unsigned long long fibonacci(int n) {
if (n <= 0)
return 0;
else if (n == 1 || n == 2)
return 1;
else
return fibonacci(n - 1) + fibonacci(n - 2);
}
int main() {
int num_terms = 20; // 要求的项数
std::vector<double> fraction_sequence(num_terms); // 存储分数序列
unsigned long long prev_fib = 1, curr_fib = 1; // 初始化斐波那契数列的前两项
for (int i = 0; i < num_terms; ++i) {
fraction_sequence[i] = static_cast<double>(curr_fib) / prev_fib; // 计算当前分数
unsigned long long next_fib = curr_fib + prev_fib; // 计算下一个斐波那契数
prev_fib = curr_fib;
curr_fib = next_fib;
}
double sum = 0;
for (double f : fraction_sequence) {
sum += f;
}
std::cout << "前 " << num_terms << " 项的分数和为:" << sum << std::endl;
return 0;
}
```
运行此程序会输出前20项分数的总和。注意,由于斐波那契数增长迅速,对于大的n值可能会导致整数溢出,所以这里使用了`unsigned long long`类型来存储斐波那契数。
有一个分数序列:2/1, 3/2, 5/3, 8/5, 13/8, 21/13, ... 用c++编写程序求出这个序列的前20项之和。
以下是用 C 语言编写的程序,可以求出这个序列的前20项之和:
```c
#include <stdio.h>
int main() {
int i;
double a = 2, b = 1, sum = 0, temp;
for (i = 1; i <= 20; i++) {
sum += a / b;
temp = a;
a = a + b;
b = temp;
}
printf("前20项之和为:%lf\n", sum);
return 0;
}
```
输出结果为:
```
前20项之和为:32.660260
```
希望能帮到您!
阅读全文