有一串数列,有20项,分子分别是首项为2的斐波那契数列的每一项,分母分别是首项为1的斐波那契数列的每一项,求这一串数列的每一项的和c++
时间: 2024-11-13 07:42:06 浏览: 3
Java求一个分数数列的前20项之和的实现代码
为了求得这串数列的每一项的和,我们首先需要分别计算出首项为2的斐波那契数列(偶数序列)和首项为1的斐波那契数列(奇数序列),然后将它们对应位置相除并求和。这里给出一个简单的C++程序示例:
```cpp
#include <iostream>
using namespace std;
// 函数用于计算斐波那契数列
unsigned long long fibonacci(int n) {
unsigned long long fib[2] = {2, 1};
if (n == 0 || n == 1)
return fib[n];
for (int i = 2; i <= n; ++i) {
fib[i % 2] = fib[(i - 1) % 2] + fib[(i - 2) % 2];
}
return fib[n % 2];
}
int main() {
const int N = 20;
unsigned long long even_fib[N], odd_fib[N], sum[N];
// 计算偶数斐波那契数列
for (int i = 0; i < N; ++i) {
even_fib[i] = fibonacci(i * 2);
}
// 计算奇数斐波那契数列
for (int i = 0; i < N; ++i) {
odd_fib[i] = fibonacci((i + 1) * 2 - 1);
}
// 求每一项的和
for (int i = 0; i < N; ++i) {
sum[i] = (double)even_fib[i] / odd_fib[i];
cout << "第" << i+1 << "项的和:" << sum[i] << endl;
}
return 0;
}
```
这个程序首先计算两个斐波那契数列,然后对偶数列的每个元素除以对应的奇数列元素得到每项的值,并打印出来。
注意:由于整数溢出的问题,在处理较大数值时可能会出现问题,上述代码使用了`unsigned long long`类型,但仍需根据实际情况调整。
阅读全文