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;
        }
    }
    --------小尾巴 ________一个人欣赏-最后一朵颜色的消逝-忠诚于我的是·一颗叫做野的心.决不受人奴役.怒火中生的那一刻·终将结束...
  • 相关阅读:
    Json To CSharp
    一种C#泛型方法在lua中表示的设计
    FSM Code Generator
    vmware无法安装vmware authorization&windows无法启动VMware Authorization Service服务
    攻击树威胁建模
    自适应安全架构的历史和演进
    网络攻击如何影响物理世界
    网络安全红蓝军对抗完整战术周期
    工作组渗透-内网搜集实战
    AV-TEST杀毒软件能力测试(2018年1月-12月)杀毒软件排名
  • 原文地址:https://www.cnblogs.com/tianxiaxuange/p/7538303.html
Copyright © 2011-2022 走看看