我正在编写一个程序来计算细菌菌落的生长,直到一定的时间点。
给定一个"X",这将代表最初的细菌数量。给出一个"Y",表示细菌群中细菌的数量限制。返回细菌菌落达到极限所需的天数和小时数。
菌落每小时增加一倍。
实例1:
实例2:
实例3:
如果计算出的小时返回小数,则必须将其舍入。
到目前为止,我已经编写了以下代码:
#include <iostream>
using namespace std;
int main(){
long int binitial, blimit, day, counter=0;
float hour;
cin >> binitial;
cin >> blimit;
while(binitial <= blimit){
binitial = binitial * 2;
counter++;
}
day = counter / 24;
cout << day << " ";
hour = (counter % 24) - 0.5;
cout << (int)hour;
return 0;
}发布于 2013-05-17 12:12:28
如果您执行以下操作,可以使用长int操作一个小时:
hour = counter - (day*24); // The total number of hours minus the number of hours that are in each day.我面前没有编译器,但您可能也可以这样做:
hour = counter % 24; // this will return the remainder when counter is divided by 24.发布于 2013-05-17 12:15:15
如果blimit始终是binitial的倍数,则解决方案很简单:
counter%24总是一个整数,所以您不必舍入它。在day日和hour小时的情况下,您只需做以下工作:
hour = counter%24https://stackoverflow.com/questions/16608642
复制相似问题