斐波那契数列

来源:互联网 发布:年轻员工管理知乎 编辑:程序博客网 时间:2024/06/05 00:56

输出斐波那契数列的第n项

第一个想到的是用通项公式,这个最简单。但是第一次提交没有成功,后来看了看是丢失精度问题。

 int fib1(int n) {   double a=(1+sqrt(5))/2.0;   double b=(1-sqrt(5))/2.0;     if(n==1||n==2)        return 1;     else      return (pow(a,n)-pow(b,n))/sqrt(5);    }
通过了之后又试了另一种方法,用数组转存

int fib(int n){    int a[100]={0};    a[1]=1;    a[2]=1;    for(int i=3;i<100;i++)    {        a[i]=a[i-1]+a[i-2];    }    return a[n];}

这两种方法都避免了递归带来的复杂度。

0 0
原创粉丝点击