用递归方法求fibonacci级数,递归求Fabonacci数列

  用递归方法求fibonacci级数,递归求Fabonacci数列

  如果我们仔细观察,就会发现向日葵盘内的种子形成两组螺旋线,一组是顺时针的,另一组是逆时针的。

  而这两组螺旋线的条数刚好是两个相邻的斐波那契数,小向日葵是34和55,大向日葵是144和233。

  松果种子、菜花表面也有类似的规律。

  有科学家认为:这种排列可以使得种子的堆积最密集,最有利于植物繁衍后代。

  八百年来,人们在各个领域都发现了斐波那契数列。

  尤其是十九世纪开始,人们发现了斐波那契数列在计算机、物理、化学等领域的应用,这个古老的数列焕发了新的青春。

  1963年,斐波那契协会成立,并出版了《斐波那契季刊》 用以刊登与斐波那契数列相关的研究成果。

  代码实现基本循环算法#包括输入输出流

  #包括cstdio

  使用命名空间标准

  int main(){

  int a=0,b=1,c=1,n;

  CIN n;//输入n

  for(int I=3;I=n;i ){

  a=b;

  b=c;

  c=a b;

  }

  cout c;//输出最终结果

  返回0;

  }递归算法实现#包括输入输出流

  #包括cstdio

  使用命名空间标准

  int f(int n){

  如果(n==0)返回0;

  如果(n==1)返回1;

  如果(n=2){

  返回f(n-1)f(n-2);

  }

  }

  int main(){

  int n;

  CIN n;

  printf(%d ,f(n));

  返回0;

  }递归算法优化(记忆化搜索)#包含输入输出流

  #包括cstdio

  #定义最大值(101)

  使用命名空间标准

  int a[MAX];

  int f(int n){

  如果(a[n]!=-1)返回一个[n];

  否则{

  a[n]=f(n-1)f(n-2);

  返回a[n];

  }

  }

  int main(){

  int n;

  CIN n;

  for(int I=0;I=MAX-1;i ){ //初始化

  a[I]=-1;

  }

  a[0]=0;a[1]=1;

  printf(%d ,f(n));

  返回0;

  }高精度计算#包括输入输出流

  #包括字符串

  使用命名空间标准

  char sum[1200];

  int s=0,m=0,n;

  int main()

  {

  CIN n;

  字符串s1、S2;

  int a[1200],b[1200],he,I;

  S1=" 0 ";s2= 1

  for(m=2;m n;m)

  {

  memset(a,0,sizeof(a));

  memset(b,0,sizeof(b));

  a[0]=S1。长度();

  for(I=1;I=a[0];我)

  a[I]=S1[a[0]-I]-0;

  b[0]=S2。长度();

  for(I=1;I=b[0];我)

  b[I]=S2[b[0]-I]-0;

  他=(a[0] b[0]?a[0]:b[0]);

  for(I=1;我=他;我)

  {

  a[I]=b[I];

  a[I 1]=a[I]/10;

  a[I]%=10;

  }

  何;

  而((a[他]==0)(he 1))he-;

  for(i=he,s=0;I=1;i -,s)

  sum[s]=a[I] 0 ;

  s1=s2

  s2=总和;

  }

  cout s2 endl

  返回0;

  }

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: