百練2712細菌繁殖解題報告
5269 ワード
1.リンク:http://poj.grids.cn/practice/2712/
2.タイトル:
総時間制限:
1000 ms
メモリ制限:
65536 kB
説明
一つの細菌の繁殖速度は毎日倍増しています。例えば、初日は10個で、翌日は20個になり、3日目は40個になり、4日目は80個になります。最初の日と細菌の数を指定します。プログラムを書いて、ある日まで細菌の数を求めます。
入力
最初の行には整数nがあり、テストデータの数を表しています。その後、n行には5つの整数があり、整数の間は1つのスペースで区切られます。最初の数は一日目の月、二番目の数は一日目の日付、三番目の数は一日目の細菌の数、四番目の数は要求されたその日の月、五番目の数は要求されたその日の日付を表します。最初の日と要求された日は同じ年で、その年は閏年ではないことが分かりました。要求される日は必ず初日の後です。データは、一日の菌数が長い整数の範囲内であることを保証します。
出力
各グループのテストデータに対して、1行を出力します。この行には1つの整数が含まれています。1日の菌数が必要です。
サンプル入力
(1)1つの配列は毎月の日数を保存してから作業を行います。
2.タイトル:
総時間制限:
1000 ms
メモリ制限:
65536 kB
説明
一つの細菌の繁殖速度は毎日倍増しています。例えば、初日は10個で、翌日は20個になり、3日目は40個になり、4日目は80個になります。最初の日と細菌の数を指定します。プログラムを書いて、ある日まで細菌の数を求めます。
入力
最初の行には整数nがあり、テストデータの数を表しています。その後、n行には5つの整数があり、整数の間は1つのスペースで区切られます。最初の数は一日目の月、二番目の数は一日目の日付、三番目の数は一日目の細菌の数、四番目の数は要求されたその日の月、五番目の数は要求されたその日の日付を表します。最初の日と要求された日は同じ年で、その年は閏年ではないことが分かりました。要求される日は必ず初日の後です。データは、一日の菌数が長い整数の範囲内であることを保証します。
出力
各グループのテストデータに対して、1行を出力します。この行には1つの整数が含まれています。1日の菌数が必要です。
サンプル入力
2
1 1 1 1 2
2 28 10 3 2
サンプル出力2
40
3.コード 1 #include <iostream>
2 #include <cstdio>
3 #include <cstdlib>
4 #include <cstring>
5
6 using namespace std;
7
8 int days_of_month[12] = {31,28,31,30,31,30,31,31,30,31,30,31};
9
10 int main()
11 {
12 int n;
13 cin>>n;
14
15 int month1,month2,day1,day2,day;
16 long start_num,total_num;
17 while(n--)
18 {
19 cin>>month1>>day1>>start_num>>month2>>day2;
20 day = 0;
21 while(month1<month2)
22 {
23 day += (days_of_month[month1-1] - day1 + 1);
24 month1++;
25 day1 = 1;
26 }
27 day += (day2 - day1);
28 total_num = start_num;
29 while(day--)
30 {
31 total_num *= 2;
32 }
33 cout<<total_num<<endl;
34 }
35 return 0;
36 }
4.考え方(1)1つの配列は毎月の日数を保存してから作業を行います。