用C++编写程序:有一分数序列 2/1,3/2,5/3,8/5,13/8,21/13……求出这个数列前20项之和
时间: 2024-11-22 19:40:11 浏览: 17
ZLDX.zip_数据挖掘_C/C++_
这是一个著名的数学问题,被称为“斐波那契数列”(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`类型来存储斐波那契数。
阅读全文