菲波那契数列 递归 C++
时间: 2024-08-28 21:04:22 浏览: 65
菲波那契数列是一个经典的数学序列,其中每个数字都是前两个数字之和,通常以0和1开始,即F(0) = 0, F(1) = 1。在递归算法中,我们可以用函数自身来计算下一个数。下面是一个简单的C++程序,使用递归来计算斐波那契数列:
```cpp
#include <iostream>
// 使用递归定义斐波那契函数
int fibonacci(int n) {
if (n <= 1) // 基本情况,当n为0或1时,返回相应的值
return n;
else // 递归情况,将大数拆分为小数求和
return fibonacci(n - 1) + fibonacci(n - 2);
}
int main() {
int num; // 用户输入的数值
std::cout << "请输入一个非负整数:";
std::cin >> num;
if (num < 0)
std::cout << "错误:斐波那契数只对非负整数定义。\n";
else
std::cout << "斐波那契数列第" << num << "项是:" << fibonacci(num) << "\n";
return 0;
}
```
相关问题
斐波那契数列非递归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,并打印出结果。
c++斐波那契数列递归算法
C++实现斐波那契数列递归算法如下:
```c++
#include <iostream>
using namespace std;
int fibonacci(int n)
{
if(n <= 1)
return n;
return fibonacci(n-1) + fibonacci(n-2);
}
int main()
{
int n;
cout << "请输入一个正整数 n: ";
cin >> n;
cout << "斐波那契数列的第 " << n << " 项为:" << fibonacci(n) << endl;
return 0;
}
```
在该程序中,`fibonacci` 函数是递归实现斐波那契数列的主体部分。如果 `n` 小于等于 1,则直接返回 `n`;否则,返回斐波那契数列的前两项之和。
在 `main` 函数中,首先要求用户输入一个正整数 `n`,然后输出斐波那契数列的第 `n` 项的值。
阅读全文