teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

追記質問

2018/05/06 14:55

投稿

python3_beginer
python3_beginer

スコア46

title CHANGED
File without changes
body CHANGED
@@ -13,7 +13,15 @@
13
13
  s, a, b
14
14
 
15
15
 
16
+ 条件
17
+ すべてのテストケースにおいて、以下の条件をみたします。
16
18
 
19
+ ・1 ≦ S ≦ 1,000,000
20
+ ・1 ≦ a, b ≦ 1,000,000
21
+ ・a ≧ S + 10  ・すなわち、 風呂A には必ず 1 回以上水を行われる。
22
+
23
+
24
+
17
25
  以下のルールに従って、水を貯めていく。
18
26
 
19
27
 
@@ -128,5 +136,71 @@
128
136
 
129
137
 
130
138
 
139
+ ```
131
140
 
141
+ #追記質問
142
+
143
+ 配列ではなく、while構文を利用するようにとアドバイスをいただきました。
144
+
145
+ A、B それぞれにwhile構文を使い、それぞれの浴槽の水が溢れる直前に入れた水の量を表示できた。
146
+
147
+ しかし、ルール上にあるように交互に入れた際の、勝った相手のみ表示させたい。
148
+
149
+ 二つの条件を合わせたwhile文が書けません。
150
+
151
+ アドバイス等頂きたいです。
152
+
153
+ #追記条件
154
+
155
+
156
+ 加えて、入力値の条件を追記しました。
157
+
158
+
159
+ 入力値
160
+
161
+ s, a, b
162
+
163
+
164
+ 条件
165
+ すべてのテストケースにおいて、以下の条件をみたします。
166
+
167
+ ・1 ≦ S ≦ 1,000,000
168
+ ・1 ≦ a, b ≦ 1,000,000
169
+ ・a ≧ S + 10  ・すなわち、 風呂A には必ず 1 回以上水を行われる。
170
+
171
+
172
+
173
+
174
+ ```ここに言語を入力
175
+ コード
176
+
177
+ s,a,b = map(int, input().split())
178
+ print(s,a,b)
179
+
180
+ #Aの一回目
181
+ water_a = s+10
182
+ #Bの一回目
183
+ water_b = s+1010
184
+
185
+
186
+ #Bの一回目が限界値を越えていたら、Aの勝利
187
+ if water_b > b:
188
+ print("A" + " " + water_a)
189
+ #上記以降は交互に入れる
190
+ else:
191
+ while water_a < a:
192
+ water_a += 1010
193
+ print(water_a)
194
+ break
195
+ #Bの一回目はクリアしたため、順次 1010リットルずつ足していく
196
+ while water_b < b:
197
+ water_b += 1010
198
+ print(water_b)
199
+ break
200
+
201
+ #出力値
202
+ 1021
203
+ 2021
204
+
205
+
132
206
  ```