zoukankan      html  css  js  c++  java
  • 递归函数__斐波拉契数列__

    2017-09-17 22:41:44

    递归

        ____函数自己调用自己,又可以理解为自己的事情自己做。

       如果觉得难以理解,可以把理解成这个函数调用了一个函数,只是这个函数和自己长得一模一样。

    ---------------------------------------------------------------------------------------

        拿一对刚出生的小兔子编故事。

        假设,一对刚出生的小兔子,第一个月没有繁殖能力,两个月后生下一对兔子。

        假设所有的兔子都不死,那么10后有多少兔子?

    所经历的月数                    1           2            3           4          5           6           7             8               9              10

    兔子对数         1      1      2      3     5      8     13    21     34      55

    ---------------------------------------------------------------------------------------

    很明显,相邻两项之和 构成了后一项。

    #include <stdio.h>
    
    int FBArray(int i)
    {//FBArray(1)    FBArray(2)    FBArray(3)    FBArray(4)    FBArray(5)
     //    1              1            2             3             5     
        if(i < 2)
        {
            return (i == 0)? 0 : 1;
        }
        return FBArray(i-1) + FBArray(i-2);
    }
    
    int main()
    {
        printf("
    ");
        int i;
        for(i = 1 ; i <= 40 ; i++)
        {//打印40个月兔子的数量变化
            printf("%d
    ",FBArray(i));
        }  
        printf("
    ");
        
        return 0;
    }

     如果考虑算法复杂度的的话,还是以下代码更优

    //斐波那契数列查找算法,求斐波那契数列第n项
    #include<stdio.h>
    unsigned long long FBArray(unsigned int n); 
    int main(void)
    {
        int n;
        scanf("%d" , &n);
        printf("%llu
    " , FBArray(n));
        return 0;
    }
    unsigned long long FBArray(unsigned int n)
    {
        int i , fibone , fibtwo , fibthree;
        int fi[2] = {0 , 1};
        fibone = 0;
        fibtwo = 1;
        
        if(n < 2)
        {
            return fi[n];
        }
        else
        {
            for(i = 2;i <= n;i++)
            {
                fibthree = fibone + fibtwo;
                fibtwo = fibone;
                fibone = fibthree;
            }
            return fibthree;
        }
    }
    --------小尾巴 ________一个人欣赏-最后一朵颜色的消逝-忠诚于我的是·一颗叫做野的心.决不受人奴役.怒火中生的那一刻·终将结束...
  • 相关阅读:
    线段树专辑—— pku 1436 Horizontally Visible Segments
    线段树专辑——pku 3667 Hotel
    线段树专辑——hdu 1540 Tunnel Warfare
    线段树专辑—— hdu 1828 Picture
    线段树专辑—— hdu 1542 Atlantis
    线段树专辑 —— pku 2482 Stars in Your Window
    线段树专辑 —— pku 3225 Help with Intervals
    线段树专辑—— hdu 1255 覆盖的面积
    线段树专辑—— hdu 3016 Man Down
    Ajax跨域访问
  • 原文地址:https://www.cnblogs.com/tianxiaxuange/p/7538303.html
Copyright © 2011-2022 走看看