• C 语言实例


    斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........

    这个数列从第3项开始,每一项都等于前两项之和。

    来历

    斐波那契数列又因数学家列昂纳多·斐波那契以兔子繁殖为例子而引入,故又称为“兔子数列”。
    一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔子都不死,那么一年以后可以繁殖多少对兔子?
    我们不妨拿新出生的一对小兔子分析一下:
    第一个月小兔子没有繁殖能力,所以还是一对
    两个月后,生下一对小兔对数共有两对
    三个月以后,老兔子又生下一对,因为小兔子还没有繁殖能力,所以一共是三对
    ------
    依次类推可以列出下表:
    经过月数
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    幼仔对数
    1
    0
    1
    1
    2
    3
    5
    8
    13
    21
    34
    55
    成兔对数
    0
    1
    1
    2
    3
    5
    8
    13
    21
    34
    55
    89
     
    总体对数
    1
    1
    2
    3
    5
    8
    13
    21
    34
    55
    89
    144
     
    幼仔对数=前月成兔对数
    成兔对数=前月成兔对数+前月幼仔对数
    总体对数=本月成兔对数+本月幼仔对数
    可以看出幼仔对数、成兔对数、总体对数都构成了一个数列。这个数列有关十分明显的特点,那是:前面相邻两项之和,构成了后一项。

    递推公式

    斐波那契数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ...
    如果设F(n)为该数列的第n项(n∈N*),那么这句话可以写成如下形式::F(n)=F(n-1)+F(n-2)
    显然这是一个线性递推数列。
    流程图:
     

    实例 - 输出指定数量的斐波那契数列

    #include <stdio.h>
    
    int main()
    {
        int i, n, f1 = 1, f2 = 1, f;//定义变量
    
        printf("输出几项: ");
        scanf_s("%d", &n);//输入你想输出的项数
    
        printf("斐波那契数列: ");
    
        for (i = 1; i <= n; i=i+1)//for循环
        {
            printf("%d, ", f1);
            f = f1 + f2;
            f1 = f2;
            f2 = f;
        }
        return 0;
    }
  • 相关阅读:
    Top的VIRT是什么
    python的日志logging模块性能以及多进程
    Python的多进程锁的使用
    extjs动态导入
    初识Dubbo 系列之5-Dubbo 成熟度
    POJ 2151 Check the difficulty of problems(概率dp)
    自考
    疯狂Java学习笔记(70)-----------挚爱Java
    2014年辛星解读css第三节
    atitit。流程图的设计与制作&#160;attilax&#160;总结
  • 原文地址:https://www.cnblogs.com/HGNET/p/11873031.html
Copyright © 2020-2023  润新知