用c++实现斐波那契数列
时间: 2023-08-07 18:38:28 浏览: 101
斐波那契数列是指: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++实现斐波那契数列
C++可以通过递归或循环的方式实现斐波那契数列。下面是两种实现方式的示例代码:
1. 递归实现:
```cpp
#include <iostream>
int fibonacci(int n) {
if (n <= 1) {
return n;
}
return fibonacci(n - 1) + fibonacci(n - 2);
}
int main() {
int n;
std::cout << "请输入要计算的斐波那契数列的项数:";
std::cin >> n;
for (int i = 0; i < n; i++) {
std::cout << fibonacci(i) << " ";
}
return 0;
}
```
2. 循环实现:
```cpp
#include <iostream>
int main() {
int n;
std::cout << "请输入要计算的斐波那契数列的项数:";
std::cin >> n;
int first = 0, second = 1;
std::cout << first << " " << second << " ";
for (int i = 2; i < n; i++) {
int next = first + second;
std::cout << next << " ";
first = second;
second = next;
}
return 0;
}
```
以上是两种常见的C++实现斐波那契数列的方式。你可以根据需要选择其中一种方式来实现。如果有任何问题,请随时提问。
C++实现斐波那契数列高效
以下是C++中实现斐波那契数列的高效方法:
1. 使用循环:
```cpp
#include <iostream>
using namespace std;
int fibonacci(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;
}
int main() {
int n;
cout << "请输入要计算的斐波那契数列的项数:";
cin >> n;
cout << "第 " << n << " 项的斐波那契数为:" << fibonacci(n) << endl;
return 0;
}
```
2. 使用矩阵:
```cpp
#include <iostream>
using namespace std;
void multiply(int F[2][2], int M[2][2]) {
int x = F[0][0] * M[0][0] + F[0][1] * M[1][0];
int y = F[0][0] * M[0][1] + F[0][1] * M[1][1];
int z = F[1][0] * M[0][0] + F[1][1] * M[1][0];
int w = F[1][0] * M[0][1] + F[1][1] * M[1][1];
F[0][0] = x;
F[0][1] = y;
F[1][0] = z;
F[1][1] = w;
}
void power(int F[2][2], int n) {
int M[2][2] = {{1, 1}, {1, 0}};
for (int i = 2; i <= n; i++)
multiply(F, M);
}
int fibonacci(int n) {
int F[2][2] = {{1, 1}, {1, 0}};
if (n == 0)
return 0;
power(F, n - 1);
return F[0][0];
}
int main() {
int n;
cout << "请输入要计算的斐波那契数列的项数:";
cin >> n;
cout << "第 " << n << " 项的斐波那契数为:" << fibonacci(n) << endl;
return 0;
}
```