编写一个C++风格的程序,用动态分配空间的方法,计算Fibonacci数列的前20项并存储到动态分配的空间中
时间: 2024-09-08 17:00:48 浏览: 78
斐波那契数列前20项.docx
5星 · 资源好评率100%
在C++中,我们可以使用动态内存分配(如`new[]`)来创建一个数组,用于存储Fibonacci数列的前20项。首先,我们需要定义一个数据结构(例如`struct`或`class`)来表示单个元素,然后创建一个足够大的动态数组。接着,我们将编写一个递归或迭代的方式来生成Fibonacci数列,并将其存储在数组中。
以下是一个使用动态内存的例子,展示了如何计算Fibonacci数列:
```cpp
#include <iostream>
// 定义一个结构体来存储Fibonacci数列的值
struct Fibonacci {
int value;
};
int fibonacci(int n); // 一个简单的递归函数来获取Fibonacci数
int main() {
const int num_elements = 20; // 数组大小
// 动态分配空间
Fibonacci* fib_sequence = new Fibonacci[num_elements];
if (fib_sequence == nullptr) {
std::cerr << "Memory allocation failed." << std::endl;
return 1;
}
for (int i = 0; i < num_elements; ++i) {
fib_sequence[i].value = fibonacci(i);
}
// 打印Fibonacci序列
for (const auto& element : fib_sequence) {
std::cout << element.value << " ";
}
std::cout << std::endl;
// 释放动态分配的内存
delete [] fib_sequence;
return 0;
}
// 递归函数计算Fibonacci数
int fibonacci(int n) {
if (n <= 1)
return n;
else
return fibonacci(n - 1) + fibonacci(n - 2);
}
```
在这个例子中,我们首先定义了一个`Fibonacci`结构体,用于存储每个数的值。在`main()`函数中,我们动态分配了足够的空间来存储20个`Fibonacci`实例。然后使用递归调用`fibonacci()`函数计算每一项的值,并存储在动态数组中。最后,我们遍历数组并打印结果,别忘了在结束时手动释放动态分配的内存以防止内存泄漏。
阅读全文