您的位置:首页 > 其它

递归、递推(斐波那契数列)

2017-01-11 19:21 281 查看


Fibonacci数

时间限制:3000 ms  |  内存限制:65535 KB
难度:1

描述

无穷数列1,1,2,3,5,8,13,21,34,55...称为Fibonacci数列,它可以递归地定义为

F
=0;(n=0);

F(n)=F(n-1)+F(n-2).....(n>2)

现要你来求第n个斐波那契数。(第1个、第二个都为1)
F(n)=1 ...........(n=1或n=2)

递归法://效率低

 

#include<stdio.h>

int fib(int n)

{

    if(n==0||n==1) return n;

    return fib(n-1)+fib(n-2);

}

int main()

{

    int m;

    scanf("%d",&m);

    while(m--)

    {

        int n;

        scanf("%d",&n);

        printf("%d\n",fib(n));

    }

}

        

递推法:

#include<stdio.h>

int main()

{

    int n,i,f[1000];

        scanf("%d",&n);

        f[0]=0;

        f[1]=1;

        for(i=2; i<=n; i++)

        {

            f[i]=f[i-1]+f[i-2];

        }

        printf("%d\n",f
);

    return 0;

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: