已知二阶Fibonacci数列

已知二阶Fibonacci数列:

Fib(0)=0;若n=0

Fib(1)=1;若n=1

Fib(n)= Fib(n-1)+ Fib(n-2) 其他情况

定义递归和非递归函数求Fib(n)。

 

 

 

程序如下:
法一:递归方法

#include <stdio.h>

int Fib(int n)
{ int m;
  if(n==0)m=0;
  else if(n==1)m=1;
  else m=Fib(n-1)+Fib(n-2);
  return m;
}

void main()
{ int n;
  printf(“请输入非负整数n:”);
  scanf(“%d”,&n);
  printf(“fib(n)=%d\n”,Fib(n));
}

法二:非递归函数

#include <stdio.h>

int Fib(int n)
{ int f0=0,f1=1,m,f;
  if(n==0) return 0;
  else if(n==1) return 1;
  else
  { for (m=0;m<n-1;m++){f=f0+f1;f0=f1;f1=f;}
    return f;
  }
}

void main()
{ int n;
  printf(“请输入非负整数n:”);
  scanf(“%d”,&n);
  printf(“fib(n)=%d\n”,Fib(n));
}

© 版权声明
THE END
喜欢就支持以下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容