一、什么是斐波那契数列?
斐波那契数列指的是这样一个数列:
0,1,1,2,3,5,8,13,21,34…
这个数列从第3项开始,每一项都等于前两项之和。
递推方程:
F(0)=0,F(1)=1
F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)
二、代码实现
1.递归实现
代码如下:
#include "stdio.h"
int fib(int n)
{
if(n<2)
return n;
else
return fib(n-1)+fib(n-2);
}
int main()
{
int num=0;
printf("求第几位的元素:");
scanf("%d",&num);
printf("第%d位上的元素是%d",num,fib(num));
return 0;
}
运行结果:
2.非递归
代码如下:
#include "stdio.h"
int fib(int n)
{
int f0=0,f1=1,f2=n;
for(int i=2;i<=n;++i)
{
f2=f0+f1;
f0=f1;
f1=f2;
}
return f2;
}
int main()
{
int num=0;
printf("求第几位的元素:");
scanf("%d",&num);
printf("第%d位上的元素是%d",num,fib(num));
return 0;
}
运行结果: