用C语言求斐波那契数列第n项?

如题所述

#include<stdio.h>
//求斐波那契数列第n项
int fib(int n)
{
if(n == 0 || n == 1)
return 1;
else
return (fib(n-1)+fib(n-2));
}

int main()
{
int i,n;
printf("-----输入一个斐波那契数-----\n");
scanf("%d",&n);
for(i=0;i<n;i++)
printf("%d\t",fib(i));
printf("\n");

return 0;
}

编译结果:

./a.out

-----输入一个斐波那契数-----

8

1 1 2 3 5 8 13 21

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-11-15
#include <stdio.h>
main( ){
long f1,f2,f;
int i,n;
scanf("%d",&n);
f1=f2=1;
if(n<=2)
f=1;
else
for(i=3;i<=n;i++){
f=f1+f2;
f1=f2;
f2=f;
}
printf("%ld\n",f);
}本回答被网友采纳
第2个回答  2011-11-10
main{int n;int * p; int i;scanf("%d",n);
p=malloc(n*sizeof(int));
p[0]=p[1]=1;or(i=0;i<=n-3;i++){
p[i+2]=p[i+1]+p[i];}
printf("%d\n",p[n-1]);}
第3个回答  2011-11-10
int fibo(int n)
{
if(n <= 0)
return 0;
else if(n==1)
return 1;
else if(n==2)
return 2;
else
return fibo(n-1)+fibo(n-2);
}
第4个回答  2011-11-10
用递归
相似回答