1. 程式人生 > >斐波那契數列的迭代實現與遞迴實現(c語言)

斐波那契數列的迭代實現與遞迴實現(c語言)

遞迴實現

#include<stdio.h>

int Fib(int n){ // 自定義函式
	if(n<0)
	      return -1;
	else if(n==0)
	      return 0;
	else if(n==1)
	      return 1;
    else
          return Fib(n-1)+Fib(n-2);
} 

int main(){
	int num;
	printf("請輸入要求取的第n項斐波那契數列 n="); 
	if(scanf("%d",&num)){
		if(num>=0){
			printf
("%d",Fib(num)); } else printf("Error!!!"); return 0; } return 0; }

迭代實現

#include<stdio.h>
int main(){
	int n,n1=1,n2=1,n3;
	printf("求斐波那契數列前n個數,n=");
	scanf("%d",&n);
	//迭代實現 
	if(n<=2)
		printf("數列:%d %d",n1,n2);	
	else
	   {
	   	printf("數列:%d %d",n1,n2);
	   	for(int
i=3;i<=n;i++){ n3=n1+n2; printf(" %d",n3); n1=n2; n2=n3; } } }

具體執行結果就不貼上了,可以自己執行驗證。