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 微生物增殖模拟的主要内容,如果未能解决你的问题,请参考以下文章