用动态数组表达斐波那契数列
时间: 2023-11-20 20:50:16 浏览: 83
可以使用动态数组来表达斐波那契数列,代码如下:
```c++
#include <iostream>
#include <vector>
using namespace std;
vector<int> fibonacci(int n) {
vector<int> res(n);
res[0] = 0;
if (n == 1) {
return res;
}
res[1] = 1;
for (int i = 2; i < n; i++) {
res[i] = res[i-1] + res[i-2];
}
return res;
}
int main() {
int n = 10;
vector<int> res = fibonacci(n);
for (int i = 0; i < n; i++) {
cout << res[i] << " ";
}
cout << endl;
return 0;
}
```
输出结果为:0 1 1 2 3 5 8 13 21 34
相关问题
数组实现斐波那契数列
斐波那契数列是一个非常经典的数列,该数列的第一个和第二个数都为1,从第三个数开始,每个数都是它前面两个数的和。例如,前10个斐波那契数列的值为:1, 1, 2, 3, 5, 8, 13, 21, 34, 55。
要使用数组来实现斐波那契数列,可以声明一个数组来存储数列中的所有元素。由于斐波那契数列的长度是不确定的,因此可以选择动态分配内存来存储数组。
以下是一个使用动态数组实现斐波那契数列的示例代码:
```c
#include <stdio.h>
#include <stdlib.h>
int main() {
int n, i;
printf("Enter the number of elements: ");
scanf("%d", &n);
// 动态分配内存
int *fib = (int*)malloc(n * sizeof(int));
// 初始化前两个元素
fib = 1;
fib = 1;
// 计算并存储斐波那契数列中的元素
for(i = 2; i < n; i++) {
fib[i] = fib[i-1] + fib[i-2];
}
// 输出斐波那契数列中的所有元素
printf("Fibonacci Series: ");
for(i = 0; i < n; i++) {
printf("%d ", fib[i]);
}
// 释放动态分配的内存
free(fib);
return 0;
}
```
这段代码首先要求用户输入斐波那契数列中元素的个数,然后动态分配足够的内存来存储这些元素。接着,它初始化前两个元素,并使用循环计算和存储剩余元素。最后,它输出整个斐波那契数列并释放动态分配的内存。
用数组实现斐波那契数列
可以用数组来实现斐波那契数列。斐波那契数列是一个数列,每个数都是前两个数的和,第一个数和第二个数都为1,数列如下:1、1、2、3、5、8、13、21、34、55、89、144...
以下是使用数组实现斐波那契数列的示例代码:
```python
n = 10 # 想要生成的斐波那契数列的长度
fib = [1, 1] # 数组中初始的两个元素为1,1
for i in range(2, n):
fib.append(fib[i-1] + fib[i-2])
print(fib)
```
输出:[1, 1, 2, 3, 5, 8, 13, 21, 34, 55]
这个程序使用了一个for循环来生成斐波那契数列,每次都将前两个数的和添加到数组中,直到数组的长度达到所需的长度。