斐波那契數列是學習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;
}