斐波那契數列的迭代實現與遞迴實現(c語言)
阿新 • • 發佈:2019-01-02
遞迴實現
#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;
}
}
}
具體執行結果就不貼上了,可以自己執行驗證。