菲波那契数列 递归 C++
时间: 2024-08-28 13:04:22 浏览: 45
菲波那契数列是一个经典的数学序列,其中每个数字都是前两个数字之和,通常以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++实现斐波那契数列递归的方法:
方法一:
```c++
#include<iostream>
using namespace std;
int fibonacci(int n){
if(n == 0 || n == 1){
return n;
}
else{
return fibonacci(n-1) + fibonacci(n-2);
}
}
int main(){
int n;
cin >> n;
cout << fibonacci(n) << endl;
return 0;
}
```
方法二:
```c++
#include<iostream>
using namespace std;
int fibonacci(int n){
if(n == 1){
return 0;
}
else if(n == 2){
return 1;
}
else{
return fibonacci(n-1) + fibonacci(n-2);
}
}
int main(){
int n;
cin >> n;
cout << fibonacci(n) << endl;
return 0;
}
```
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` 项的值。