1. 程式人生 > 其它 >[C語言]——斐波那契數列的兩種實現方式(遞迴與非遞迴)

[C語言]——斐波那契數列的兩種實現方式(遞迴與非遞迴)

技術標籤: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; }

執行結果:
在這裡插入圖片描述