斐波那契数列
形如1,1,2,3,5,8.........,后面的数是前面两数的和数所排成的数列称为斐波那契数列,那么,我们该怎样计算出他的第n项的数呢?下面是我所会的两种求斐波那契数列的方法。
//递归实现
#include<stdio.h>
void main()
{
int n,i,num;
printf("n=");
scanf("%d",&n);
num=m1(n);
printf("num=%d",num);
}
int m1(int a)
{
if(a==1||a==2)
return 1;
else
return m1(a-1)+m1(a-2);
}
//循环实现
#include<stdio.h>
void main()
{
long f,f1,f2,sum=1;
int i,n;
f1=f2=1;
printf("Please input n=");
scanf("%d",&n);
if(n<=2)
{
sum=1;
}
else
{
for(i=1;i<=n-2;i++)
{
sum+=f1;
f=f1+f2;
f1=f2;
f2=f;
}
}
printf("sum=%ld",sum);
}