一、基础概念:
斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、……在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)
二、代码
#include <stdio.h>
int fib1(int n)
int fib2(int n);
int main()
{
int n=0;
printf("fibonacci数列下标:\n");
scanf("%d",&n);
printf("第n=%d的数列值是:%d\n",n, fib1(n));
return 0;
}
//非递归
int fib2(int n)
{
int a = 1;
int b = 1;
int c = a = b;
int i = 0;
for (i = 3; i <= n; i++)
{
c = a + b;
a = b;
b = c;
}
return c;
}
//递归
int fib1(int n)
{
if (n <= 2)
return 1;
else
return fib1(n - 2) + fib1(n - 1);
}
三、运行结果
四、递归的优劣