斐波那契数列是学习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;
}