[C語言]——斐波那契數列的兩種實現方式(遞迴與非遞迴)
阿新 • • 發佈:2020-12-12
技術標籤:c語言
文章目錄
一、什麼是斐波那契數列?
斐波那契數列指的是這樣一個數列:
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;
}
執行結果: