特定の時点までの細菌コロニーの成長を計算するプログラムをコーディングしています。
「X」を指定すると、それは細菌の初期数を表します。そして、与えられた「Y」は、細菌コロニー内の細菌の望ましい数の制限を表します. 細菌コロニーが限界に達するまでに必要な日数と時間数を返します。
細菌のコロニーは 1 時間ごとに 2 倍になります。
例1:
- 入力: 1、8
- 出力: 0、3
例 2:
- 入力: 1000 、1024000
- 出力:0、10
例 3:
- 入力: 123、3453546624536
- 出力: 1、10
計算された時間が小数を返す場合は、切り捨てる必要があります。
これまでのところ、私はこのコードを書いています:
#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;
}