斐波那契数列c++动态规划
时间: 2023-11-16 07:04:40 浏览: 101
斐波那契数列是指这样一个数列:0、1、1、2、3、5、8、13、21、34、……,其中每一项都等于前两项之和。c++动态规划法求斐波那契数列的思路是:先定义一个数组F,F[i]表示斐波那契数列中第i个数的值,然后通过循环计算F[i]的值,最后返回F[n]即可得到斐波那契数列中第n个数的值。具体实现可以参考以下代码:
```
#include <iostream>
using namespace std;
int number(int* F, int n) {
if (n == 0) return F[0];
else if (n == 1) return F[1];
else {
for (int i = 2; i <= n; i++) {
F[i] = F[i - 1] + F[i - 2];
}
return F[n];
}
}
int main() {
int n, num;
int F[10];
cin >> n;
F[0] = 0;
F[1] = 1;
num = number(F, n);
cout << num << endl;
return 0;
}
```
相关问题
斐波那契数列动态规划c++
以下是使用动态规划求解斐波那契数列的 C++ 代码:
```c++
#include <iostream>
using namespace std;
int Fibonacci(int n) {
// 创建一个数组来存储斐波那契数列的值
int fib[n+1];
fib[0] = 0;
fib[1] = 1;
// 使用动态规划计算斐波那契数列的值
for (int i = 2; i <= n; i++) {
fib[i] = fib[i-1] + fib[i-2];
}
return fib[n];
}
int main() {
int n = 10;
cout << "斐波那契数列第" << n << "项的值为:" << Fibonacci(n) << endl;
return 0;
}
```
该代码中,我们使用一个数组 `fib` 来存储斐波那契数列的值,数组下标从 0 开始,因此数组的长度应为 `n+1`。接着,我们初始化数组的前两个元素为 0 和 1,然后使用循环计算出数组中的剩余元素,即斐波那契数列的值。最后,返回数组中第 `n` 个元素的值即可。
运行上述代码得到的输出为:
```
斐波那契数列第10项的值为:55
```
斐波那契数列c++递归
斐波那契数列是一个经典的数学序列,其中每个数字是前两个数字之和。通常递归算法可以简洁地表示这个规律。在 C++ 中,你可以使用如下的递归函数来计算第 n 项斐波那契数:
```cpp
#include <iostream>
// 递归函数计算斐波那契数列
int fibonacci(int n) {
if (n <= 0) {
return 0; // 基本情况:第一项是0,第二项是1
} else if (n == 1) {
return 1;
} else {
return fibonacci(n - 1) + fibonacci(n - 2); // 递归调用自身计算前两项的和
}
}
int main() {
int n;
std::cout << "请输入想要计算的斐波那契数列项数: ";
std::cin >> n;
std::cout << "斐波那契数列的第 " << n << " 项是: " << fibonacci(n) << std::endl;
return 0;
}
```