c++斐波那契数列 递推
时间: 2023-09-10 17:14:06 浏览: 145
当使用递推方法计算斐波那契数列时,可以使用循环来逐步计算每个数字。下面是使用C++编写的代码示例:
```c++
#include <iostream>
int fibonacci(int n) {
if (n <= 1)
return n;
int prev = 0;
int current = 1;
for (int i = 2; i <= n; ++i) {
int temp = current;
current = prev + current;
prev = temp;
}
return current;
}
int main() {
int n;
std::cout << "请输入要计算的斐波那契数列的位置:";
std::cin >> n;
int result = fibonacci(n);
std::cout << "第" << n << "个斐波那契数列的值为:" << result << std::endl;
return 0;
}
```
在上面的代码中,我们使用循环从2开始逐步计算每个数字,直到达到所需的位置n。我们使用两个变量prev和current来保存前两个数字,并在每次迭代中更新它们。最后,返回current作为结果。
你可以运行这段代码,并输入要计算的斐波那契数列位置,它将输出相应位置上的值。
相关问题
c++ 斐波那契数列
斐波那契数列是指这样一个数列:0、1、1、2、3、5、8、13、21、34、……在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)。在C++中,我们可以使用递归或循环的方式来实现斐波那契数列的计算。
以下是三种不同的C++实现方法:
1. 递归实现:
int Fbi(int i){
if(i==1||i==2){
return 1;
}else{
return Fbi(i-1)+Fbi(i-2);
}
}
2. 类实现:
class Fibonacci{
public:
int Fbi(int i){
if(i==1||i==2){
return 1;
}else{
return Fbi(i-1)+Fbi(i-2);
}
}
};
3. 循环实现:
ll num[maxn];
num=1;
num=1;
for(int i=3;i<=40;i++){
num[i]=num[i-1]+num[i-2];
}
printf("%d",num[40]);
其中,第一种方法是最简单的递归实现,但是当n比较大时,递归的效率会非常低下,因为会重复计算很多次。第二种方法是使用类来实现,可以更好地封装和管理斐波那契数列的计算。第三种方法是使用循环来实现,可以避免递归的效率问题,但是需要使用数组来存储计算结果。
用C++语言使用递推做斐波那契数列
#include <stdio.h>
int main()
{
int n, i;
long long fib[50]; //使用long long避免溢出
printf("请输入要输出的斐波那契数列的项数:");
scanf("%d", &n);
fib[0] = 0;
fib[1] = 1;
for (i = 2; i < n; i++) {
fib[i] = fib[i - 1] + fib[i - 2];
}
printf("斐波那契数列前%d项为:\n", n);
for (i = 0; i < n; i++) {
printf("%lld ", fib[i]);
}
return 0;
}
阅读全文