LQ0267 微生物增殖模拟

Posted 海岛Blog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LQ0267 微生物增殖模拟相关的知识,希望对你有一定的参考价值。

题目来源:蓝桥杯2012初赛 C++ A组A题

题目描述
本题为填空题,只需要算出结果后,在代码中使用输出语句将所填结果输出即可。

假设有两种微生物 X 和 Y。

X 出生后每隔 3 分钟分裂一次(数目加倍),Y 出生后每隔 2 分钟分裂一次(数目加倍)。

一个新出生的 X,半分钟之后吃掉 1 个 Y,并且,从此开始,每隔 1 分钟吃 1 个 Y。

现在已知有新出生的 X=10, Y=89,求 60 分钟后Y的数目。

问题分析
用模拟法来实现,周期需要是半分钟(30秒)。
题目BUG或者测试数据BUG,开始时应该是y=90而不是89。

AC的C语言程序如下:

/* LQ0267 微生物增殖 */

#include <stdio.h>

int main()

    /* 以秒为单位模拟,时钟每次走30秒 */
    int x = 10, y = 90, cnt = 0;
    while (cnt < 60 * 60) 
        cnt += 30;
        if (cnt % 60) // 每30秒
            y -= x;
        if (cnt % (2 * 60) == 0) // 每2分钟
            y *= 2;
        if (cnt % (3 * 60) == 0) // 每3分钟
            x *= 2;
    

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

    return 0;

以上是关于LQ0267 微生物增殖模拟的主要内容,如果未能解决你的问题,请参考以下文章

生物细胞繁衍生存模拟仿真实验

生物细胞繁衍生存模拟仿真实验

生物细胞繁衍生存模拟仿真实验

蓝桥杯 -- 微生物繁殖

遗传算法

生物信息RPKM, FPKM和TPM