斐波那契數列 遞歸非遞歸實現

斐波那契數列是學習c語言遞歸時,必寫的。
遞歸實現代碼

int fun(int n)	//遞歸 
{
	if(n==1||n==2)
		return 1;
	return fun(n-1)+fun(n-2);
}

非遞歸實現代碼

int fun1(int n)	//非遞歸 
{
	int a[100],i;
	a[1]=a[2]=1;
	for(i=3;i<=n;i++)
		a[i]=a[i-1]+a[i-2];
	return a[n];
}

總代碼

#include <stdio.h>
#include <stdlib.h>

int fun(int n)	//遞歸 
{
	if(n==1||n==2)
		return 1;
	return fun(n-1)+fun(n-2);
}

int fun1(int n)	//非遞歸 
{
	int a[100],i;
	a[1]=a[2]=1;
	for(i=3;i<=n;i++)
		a[i]=a[i-1]+a[i-2];
	return a[n];
}

int main(void)
{
	int a;
	printf("請輸入一個大於0的整數(別太大):");
	scanf("%d",&a);	//輸入數列中要找的第a個數 
	printf("%d\n",fun(a)) ;
	printf("%d\n",fun1(a)) ;
	system("pause");	//卡住 
	return 0;
}

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章