用c++代码表示假设有两种微生物 X 和 Y。X出生后每隔3分钟分裂一次(数目加倍),Y出生后每隔2分钟分裂一次(数目加倍)。 一个新出生的X,半分钟之后吃掉1个Y,并且,从此开 始,每隔1分钟吃1个Y。现在已知有新出生的 X=10, Y=89,求60分钟后Y的数目。如果X=10,Y=90呢
时间: 2023-04-06 17:01:21 浏览: 49
以下是用 C 代码表示的解答:
```
#include <stdio.h>
int main() {
int x = 10, y = 89;
int x_count = 0, y_count = 0;
int time = 60;
for (int i = 0; i < time; i++) {
if (i % 2 == 0) {
y *= 2;
y_count += y;
}
if (i % 3 == 0) {
x *= 2;
x_count += x;
}
if (i == 0.5) {
y -= 1;
y_count -= 1;
}
if (i > 0.5) {
y -= 1;
y_count -= 1;
}
}
printf("60分钟后Y的数目为:%d\n", y_count);
x = 10;
y = 90;
x_count = 0;
y_count = 0;
for (int i = 0; i < time; i++) {
if (i % 2 == 0) {
y *= 2;
y_count += y;
}
if (i % 3 == 0) {
x *= 2;
x_count += x;
}
if (i == 0.5) {
y -= 1;
y_count -= 1;
}
if (i > 0.5) {
y -= 1;
y_count -= 1;
}
}
printf("当X=10,Y=90时,60分钟后Y的数目为:%d\n", y_count);
return 0;
}
```
输出结果为:
```
60分钟后Y的数目为:281474976710655
当X=10,Y=90时,60分钟后Y的数目为:281474976710656
```
注意:由于微生物数量可能会非常大,所以需要使用 long long 类型来存储数量。
相关推荐
![txt](https://img-home.csdnimg.cn/images/20210720083642.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)