怎么用c++实现斐波那契数列
时间: 2024-09-25 22:19:57 浏览: 65
在C++中,可以使用递归、循环或者是动态规划的方式来实现斐波那契数列。这里我将提供三种常见的方法:
1. **递归** (虽然效率不高,适合教学演示):
```cpp
int fibonacci(int n) {
if (n <= 0) return 0;
else if (n == 1) return 1;
else return fibonacci(n - 1) + fibonacci(n - 2);
}
```
2. **循环**(更高效一些):
```cpp
int fibonacci(int n) {
int a = 0, b = 1, c;
if (n <= 1) return n;
for (int i = 2; i < n; ++i) {
c = a + b;
a = b;
b = c;
}
return b;
}
```
3. **动态规划**(最常用,避免了重复计算):
```cpp
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];
}
```
相关问题
用c++实现斐波那契数列
斐波那契数列是指:0、1、1、2、3、5、8、13、21、34、……,即第 n 个数是由前两个数相加而得出的。下面是使用 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 << "请输入要求的斐波那契数列的长度:";
cin >> n;
cout << "斐波那契数列:";
for (int i = 0; i < n; i++) {
cout << fibonacci(i) << " ";
}
cout << endl;
return 0;
}
```
上述代码中,使用递归的方式实现了斐波那契数列的计算。当 n <= 1 时,直接返回 n;否则,返回 fibonacci(n-1) + fibonacci(n-2)。在 main 函数中,先输入要求的斐波那契数列的长度,然后使用 for 循环遍历输出结果。
用c++实现斐波那契数列前二十个数,并且输出5个换行
在C++中,我们可以使用循环结构结合递归的方式来实现斐波那契数列。下面是一个简单的示例,用于打印前二十个斐波那契数并每五个数换行:
```cpp
#include <iostream>
// 使用迭代法计算斐波那契数
int fibonacci(int n) {
if (n <= 0)
return 0;
else if (n == 1)
return 1;
else
return fibonacci(n - 1) + fibonacci(n - 2);
}
int main() {
for (int i = 0; i < 20; ++i) {
std::cout << fibonacci(i) << " ";
// 输出5个数后换行
if ((i + 1) % 5 == 0) {
std::cout << "\n";
}
}
return 0;
}
```
这个程序首先定义了一个递归函数`fibonacci`来计算斐波那契数,然后通过一个for循环遍历前20个数字。每次输出一个数后,检查是否到了下一个5的倍数位置,如果是,则添加一个换行符。
运行此程序,将得到前二十个斐波那契数,每五个数换一行的结果。
阅读全文