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

質問編集履歴

2

丸めの関数の修正

2021/04/01 01:55

投稿

smile_20200722
smile_20200722

スコア11

title CHANGED
File without changes
body CHANGED
@@ -112,4 +112,164 @@
112
112
  1140-1210
113
113
  ans:
114
114
  1100-1210
115
+ ```
116
+
117
+ ### 丸めの関数を修正したコード
118
+ AtCoderの問題の丸め方が間違えているとのご指摘を受けて、自分で考えた関数です。
119
+
120
+ ```c++
121
+ string my_round_start(string s) {
122
+ if(s.at(3) == '0' || s.at(3) == '1' || s.at(3) == '2' || s.at(3) == '3' ||
123
+ s.at(3) == '4') {
124
+ s.at(3) = '0';
125
+ } else if(s.at(3) == '5' || s.at(3) == '6' || s.at(3) == '7' ||
126
+ s.at(3) == '8' || s.at(3) == '9') {
127
+ s.at(3) = '5';
128
+ }
129
+ return s;
130
+ }
131
+
132
+ string my_round_end(string s) {
133
+ if(s.at(3) == '0') {
134
+ s.at(3) = '0';
135
+ } else if(s.at(3) == '1' || s.at(3) == '2' || s.at(3) == '3' ||
136
+ s.at(3) == '4' || s.at(3) == '5') {
137
+ s.at(3) = '5';
138
+ } else if(s.at(3) == '6' || s.at(3) == '7' || s.at(3) == '8') {
139
+ if(s.at(2) == '0') {
140
+ s.at(2) = '1';
141
+ s.at(3) = '0';
142
+ } else if(s.at(2) == '1') {
143
+ s.at(2) = '2';
144
+ s.at(3) = '0';
145
+ } else if(s.at(2) == '2') {
146
+ s.at(2) = '3';
147
+ s.at(3) = '0';
148
+ } else if(s.at(2) == '3') {
149
+ s.at(2) = '4';
150
+ s.at(3) = '0';
151
+ } else if(s.at(2) == '4') {
152
+ s.at(2) = '5';
153
+ s.at(3) = '0';
154
+ } else if(s.at(2) == '5') {
155
+ if(s.at(0) == '0' && s.at(1) == '0') {
156
+ s = "0100";
157
+ } else if(s.at(0) == '0' && s.at(1) == '1') {
158
+ s = "0200";
159
+ } else if(s.at(0) == '0' && s.at(1) == '2') {
160
+ s = "0300";
161
+ } else if(s.at(0) == '0' && s.at(1) == '3') {
162
+ s = "0400";
163
+ } else if(s.at(0) == '0' && s.at(1) == '4') {
164
+ s = "0500";
165
+ } else if(s.at(0) == '0' && s.at(1) == '5') {
166
+ s = "0600";
167
+ } else if(s.at(0) == '0' && s.at(1) == '6') {
168
+ s = "0700";
169
+ } else if(s.at(0) == '0' && s.at(1) == '7') {
170
+ s = "0800";
171
+ } else if(s.at(0) == '0' && s.at(1) == '8') {
172
+ s = "0900";
173
+ } else if(s.at(0) == '0' && s.at(1) == '9') {
174
+ s = "1000";
175
+ } else if(s.at(0) == '1' && s.at(1) == '0') {
176
+ s = "1100";
177
+ } else if(s.at(0) == '1' && s.at(1) == '1') {
178
+ s = "1200";
179
+ } else if(s.at(0) == '1' && s.at(1) == '2') {
180
+ s = "1300";
181
+ } else if(s.at(0) == '1' && s.at(1) == '3') {
182
+ s = "1400";
183
+ } else if(s.at(0) == '1' && s.at(1) == '4') {
184
+ s = "1500";
185
+ } else if(s.at(0) == '1' && s.at(1) == '5') {
186
+ s = "1600";
187
+ } else if(s.at(0) == '1' && s.at(1) == '6') {
188
+ s = "1700";
189
+ } else if(s.at(0) == '1' && s.at(1) == '7') {
190
+ s = "1800";
191
+ } else if(s.at(0) == '1' && s.at(1) == '8') {
192
+ s = "1900";
193
+ } else if(s.at(0) == '1' && s.at(1) == '9') {
194
+ s = "2000";
195
+ } else if(s.at(0) == '2' && s.at(1) == '0') {
196
+ s = "2100";
197
+ } else if(s.at(0) == '2' && s.at(1) == '1') {
198
+ s = "2200";
199
+ } else if(s.at(0) == '2' && s.at(1) == '2') {
200
+ s = "2300";
201
+ } else if(s.at(0) == '2' && s.at(1) == '3') {
202
+ s = "2400";
203
+ }
204
+ }
205
+ } else if(s.at(3) == '9') {
206
+ if(s.at(2) == '0') {
207
+ s.at(2) = '1';
208
+ s.at(3) = '0';
209
+ } else if(s.at(2) == '1') {
210
+ s.at(2) = '2';
211
+ s.at(3) = '0';
212
+ } else if(s.at(2) == '2') {
213
+ s.at(2) = '3';
214
+ s.at(3) = '0';
215
+ } else if(s.at(2) == '3') {
216
+ s.at(2) = '4';
217
+ s.at(3) = '0';
218
+ } else if(s.at(2) == '4') {
219
+ s.at(2) = '5';
220
+ s.at(3) = '0';
221
+ } else if(s.at(2) == '5') {
222
+ if(s.at(0) == '0' && s.at(1) == '0') {
223
+ s = "0100";
224
+ } else if(s.at(0) == '0' && s.at(1) == '1') {
225
+ s = "0200";
226
+ } else if(s.at(0) == '0' && s.at(1) == '2') {
227
+ s = "0300";
228
+ } else if(s.at(0) == '0' && s.at(1) == '3') {
229
+ s = "0400";
230
+ } else if(s.at(0) == '0' && s.at(1) == '4') {
231
+ s = "0500";
232
+ } else if(s.at(0) == '0' && s.at(1) == '5') {
233
+ s = "0600";
234
+ } else if(s.at(0) == '0' && s.at(1) == '6') {
235
+ s = "0700";
236
+ } else if(s.at(0) == '0' && s.at(1) == '7') {
237
+ s = "0800";
238
+ } else if(s.at(0) == '0' && s.at(1) == '8') {
239
+ s = "0900";
240
+ } else if(s.at(0) == '0' && s.at(1) == '9') {
241
+ s = "1000";
242
+ } else if(s.at(0) == '1' && s.at(1) == '0') {
243
+ s = "1100";
244
+ } else if(s.at(0) == '1' && s.at(1) == '1') {
245
+ s = "1200";
246
+ } else if(s.at(0) == '1' && s.at(1) == '2') {
247
+ s = "1300";
248
+ } else if(s.at(0) == '1' && s.at(1) == '3') {
249
+ s = "1400";
250
+ } else if(s.at(0) == '1' && s.at(1) == '4') {
251
+ s = "1500";
252
+ } else if(s.at(0) == '1' && s.at(1) == '5') {
253
+ s = "1600";
254
+ } else if(s.at(0) == '1' && s.at(1) == '6') {
255
+ s = "1700";
256
+ } else if(s.at(0) == '1' && s.at(1) == '7') {
257
+ s = "1800";
258
+ } else if(s.at(0) == '1' && s.at(1) == '8') {
259
+ s = "1900";
260
+ } else if(s.at(0) == '1' && s.at(1) == '9') {
261
+ s = "2000";
262
+ } else if(s.at(0) == '2' && s.at(1) == '0') {
263
+ s = "2100";
264
+ } else if(s.at(0) == '2' && s.at(1) == '1') {
265
+ s = "2200";
266
+ } else if(s.at(0) == '2' && s.at(1) == '2') {
267
+ s = "2300";
268
+ } else if(s.at(0) == '2' && s.at(1) == '3') {
269
+ s = "2400";
270
+ }
271
+ }
272
+ }
273
+ return s;
274
+ }
115
275
  ```

1

期待する出力の追記

2021/04/01 01:55

投稿

smile_20200722
smile_20200722

スコア11

title CHANGED
File without changes
body CHANGED
@@ -14,7 +14,6 @@
14
14
  どのようにループを回せばいいのか、添字を書けばいいのか、からちょっとわからない状況です。
15
15
  どうぞよろしくお願いいたします。
16
16
 
17
-
18
17
  ### 該当のソースコード
19
18
 
20
19
  ```c++
@@ -98,4 +97,19 @@
98
97
 
99
98
  return 0;
100
99
  }
100
+ ```
101
+
102
+ ### 期待する出力
103
+ 数値を時刻として、続いている間の時刻を一つにまとめて表示したいです。
104
+
105
+ ```
106
+ 1106-1123
107
+ 1129-1203
108
+ 1148-1210
109
+ output:
110
+ 1100-1125
111
+ 1120-1205
112
+ 1140-1210
113
+ ans:
114
+ 1100-1210
101
115
  ```