一、基礎概念:
斐波那契數列,又稱黃金分割數列,指的是這樣一個數列: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);
}
三、運行結果
四、遞歸的優劣