代码改变世界

斐波那契数列的实现

2015-04-01 16:30  dream_er  阅读(209)  评论(0)    收藏  举报

斐波那契数列

形如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);

}