斐波那契数列c++递归
时间: 2024-09-15 15:00:54 浏览: 64
斐波那契数列是一个经典的数学序列,其中每个数字是前两个数字之和。通常递归算法可以简洁地表示这个规律。在 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;
}
```
相关问题
斐波那契数列c++递归+数组
斐波那契数列是一个经典的数学问题,通常用于演示递归和动态规划的概念。在C++中,可以使用递归和数组结合的方法来计算斐波那契数列。以下是一个示例代码,展示了如何使用递归和数组来计算斐波那契数列:
```cpp
#include <iostream>
#include <vector>
// 使用递归和数组计算斐波那契数列
int fibonacci(int n, std::vector<int>& memo) {
if (n <= 1)
return n;
// 检查是否已经计算过
if (memo[n] != -1)
return memo[n];
// 递归计算并存储结果
memo[n] = fibonacci(n - 1, memo) + fibonacci(n - 2, memo);
return memo[n];
}
int main() {
int n = 10; // 计算前10个斐波那契数
std::vector<int> memo(n + 1, -1); // 初始化备忘录数组
for (int i = 0; i <= n; ++i) {
std::cout << "Fibonacci(" << i << ") = " << fibonacci(i, memo) << std::endl;
}
return 0;
}
```
### 代码解释
1. **递归函数 `fibonacci`**:
- 如果 `n` 小于等于1,直接返回 `n`。
- 检查 `memo[n]` 是否已经计算过,如果计算过,直接返回 `memo[n]`。
- 否则,递归计算 `fibonacci(n - 1)` 和 `fibonacci(n - 2)`,并将结果存储在 `memo[n]` 中。
2. **主函数 `main`**:
- 初始化一个备忘录数组 `memo`,大小为 `n + 1`,并用 `-1` 填充。
- 循环计算并打印前 `n` 个斐波那契数。
这种方法通过使用备忘录数组避免了重复计算,提高了计算效率。
斐波那契数列非递归c++
以下是使用C++编写的非递归斐波那契数列的示例代码:
```cpp
#include <iostream>
int fibonacci(int n) {
if (n <= 1)
return n;
int prev = 0;
int curr = 1;
for (int i = 2; i <= n; i++) {
int temp = curr;
curr = prev + curr;
prev = temp;
}
return curr;
}
int main() {
int n = 10; int result = fibonacci(n);
std::cout << "The " << n << "th Fibonacci number is: " << result << std::endl;
return 0;
}
```
这段代码定义了一个名为`fibonacci`的函数,该函数接受一个整数参数`n`,并返回斐波那契数列中第`n`个数。在主函数中,我们将`n`设置为10,并打印出结果。
阅读全文
相关推荐
![pdf](https://img-home.csdnimg.cn/images/20241231044930.png)
![docx](https://img-home.csdnimg.cn/images/20241231044901.png)
![zip](https://img-home.csdnimg.cn/images/20241231045053.png)
![rar](https://img-home.csdnimg.cn/images/20241231044955.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![-](https://img-home.csdnimg.cn/images/20241231044955.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)