如何计算斐波那契数列的前n项和?
时间: 2024-12-16 11:15:39 浏览: 1
c代码-递归计算斐波那契函数前n项和
计算斐波那契数列的前n项和可以通过动态规划的方法,我们可以使用一个数组或动态数据结构存储中间项的和,避免重复计算。以下是一个简单的C++代码示例:
```cpp
#include <iostream>
// 斐波那契数列的第n项
int fibonacci(int n) {
if (n <= 0)
return 0;
else if (n == 1)
return 1;
else
return fibonacci(n - 1) + fibonacci(n - 2);
}
// 计算前n项斐波那契数列的和
long long fibSum(int n) {
long long sum = 0; // 用于储存累加和
int prevPrev = 0, prev = 1; // 前两项
for (int i = 0; i < n; ++i) {
sum += fibonacci(i); // 将当前项加入到总和
if (i >= 2) { // 从第三项开始才需要更新prev和prevPrev
std::swap(prevPrev, prev);
}
prev = fibonacci(prev + prevPrev); // 计算下一项
}
return sum;
}
int main() {
int n;
std::cout << "Enter the number of terms: ";
std::cin >> n;
std::cout << "The sum of the first " << n << " Fibonacci numbers is: " << fibSum(n) << std::endl;
return 0;
}
```
在这个代码中,`fibonacci` 函数负责计算单个斐波那契数,而 `fibSum` 函数则是迭代计算并累计和。
阅读全文