当前位置: 代码迷 >> C语言 >> 求Fibonacci数列前40个数,要怎么编呀,谢谢大家的帮忙
  详细解决方案

求Fibonacci数列前40个数,要怎么编呀,谢谢大家的帮忙

热度:217   发布时间:2005-07-05 21:58:00.0
求Fibonacci数列前40个数,要怎么编呀,谢谢大家的帮忙
求Fibonacci数列前40个数,这个数的特点:第1,2两数为1,从第3个数开始,该数是其前面两个数之和。即:1,1,2,3,5,8,13,21,34,55,89,144,233……

这个要怎么编呀,谢谢大家的帮忙
搜索更多相关的解决方案: Fibonacci  之和  特点  

----------------解决方案--------------------------------------------------------
FIBONACCI的定义嘛,用函数递归讪
----------------解决方案--------------------------------------------------------

#include<stdio.h> int Fibonacci(int a) { if(a>2)return Fibonacci(a-1)+Fibonacci(a-2); else return 1; }

void main() { int a; long int sum=0; scanf("%i",&a); for(int c=1;c<=a;c++) { sum+=Fibonacci(c); printf("%i %li \n",c,sum); } } 好像效率不高,


----------------解决方案--------------------------------------------------------
long int Fibonacci(int a)
{long int a1=1,a2=1,a3;
if(a&lt;3)return 1;
else
{
for(int b=1;b&lt;=(a-2);b++)
{
  a3=a1+a2;
  a1=a2;
  a2=a3;
  
}
return a3;
}
}

这个效率要高点了~~

[此贴子已经被作者于2005-7-8 10:16:22编辑过]



----------------解决方案--------------------------------------------------------
谭浩强老师的书上是这么写的:
main()
{
  long int f1, f2 ;
  int i;
  f1=1;f2=1;
  
  for(i=1;i&lt;=20;i++)
  {
    printf("%12ld%12ld",f1,f2);
    if(i%2==0)printf("\n");
    f1=f1+f2;
    f2=f2+f1;
  }
}

[此贴子已经被作者于2005-7-25 10:24:11编辑过]



----------------解决方案--------------------------------------------------------