求斐波拉契数列2 c++
时间: 2024-02-27 22:58:20 浏览: 82
以下是求斐波那契数列第 n 项的 C++ 代码(使用递推法):
```c++
#include <iostream>
using namespace std;
int fibonacci(int n) {
if (n <= 0) return 0;
if (n == 1) return 1;
int pre1 = 0, pre2 = 1, cur = 0;
for (int i = 2; i <= n; i++) {
cur = pre1 + pre2;
pre1 = pre2;
pre2 = cur;
}
return cur;
}
int main() {
int n;
cout << "请输入 n:";
cin >> n;
cout << "斐波那契数列第 " << n << " 项为:" << fibonacci(n) << endl;
return 0;
}
```
其中,fibonacci 函数接受一个整数参数 n,返回斐波那契数列第 n 项的值。在函数内部,我们使用了递推法来计算斐波那契数列的值。在主函数中,我们读入用户输入的 n,然后调用 fibonacci 函数计算并输出结果。
相关问题
编写一段求斐波那契数列的C++代码
好的,以下是求斐波那契数列的C代码:
``#include <stdio.h>
int fibonacci(int n)
{
if (n <= 1)
return n;
else
return fibonacci(n-1) + fibonacci(n-2);
}
int()
{
int n, i;
printf("输入要求的斐波那契数列长度:");
scanf("%d", &n);
printf("斐波那契数列:\n");
for (i = 0; i < n; i++)
{
printf("%d ", fibonacci(i));
}
printf("\n");
return 0;
}
```
这份代码通过递归实现了求斐波那契数列的功能,可以根据用户的输入求得相应长度的斐波那契数列并输出。
C++求斐波拉契数列
在C++中,求斐波那契数列通常可以使用递归、动态规划或者循环迭代的方式来实现。以下是三种常见方法的简单示例:
1. **递归** (虽然效率较低,但代码简洁)
```cpp
int fibonacci(int n) {
if (n <= 1) return n;
return fibonacci(n - 1) + fibonacci(n - 2);
}
```
2. **动态规划(迭代)**
```cpp
vector<int> fib_dp(int n) {
vector<int> dp(n + 1);
dp[0] = 0;
dp[1] = 1;
for (int i = 2; i <= n; ++i) {
dp[i] = dp[i - 1] + dp[i - 2];
}
return dp;
}
```
3. **迭代(直接循环)**
```cpp
int fibonacci_iterative(int n) {
int a = 0, b = 1, c;
if (n == 0) return a;
for (int i = 2; i <= n; ++i) {
c = a + b;
a = b;
b = c;
}
return b;
}
```
以上代码分别展示了递归、动态规划和迭代的方法。
阅读全文