回答編集履歴

3

真偽値の間違い

2021/06/13 15:17

投稿

BeatStar
BeatStar

スコア4962

test CHANGED
@@ -6,7 +6,45 @@
6
6
 
7
7
 
8
8
 
9
- ざっと見た感じ、条件が変です
9
+ ざっと見た感じ、条件が変。
10
+
11
+
12
+
13
+ wなら〜とかの時の処理は、
14
+
15
+
16
+
17
+ 『y以外は2倍』なのに、結果の条件判断では『カウンタが3の倍数でないなら』となっている。
18
+
19
+
20
+
21
+ 仮にyがないものであれば、
22
+
23
+
24
+
25
+ 1×2=2
26
+
27
+ 2×2=4
28
+
29
+ 4×2=8
30
+
31
+ ...
32
+
33
+
34
+
35
+ という風に、『2の倍数』になる。
36
+
37
+
38
+
39
+ 質問のコードでは、2と3の倍数、つまり、最小公倍数である、6の倍数の時しか真にならない。
40
+
41
+
42
+
43
+ 多分、サンプルの入力例ではたまたま、6の倍数になっていたんだと思いますよ。
44
+
45
+
46
+
47
+ それと、
10
48
 
11
49
 
12
50
 
@@ -22,49 +60,45 @@
22
60
 
23
61
 
24
62
 
63
+ else if(count % 3 == 0) {
64
+
65
+ cout << "Four" << "\n";
66
+
67
+ }
68
+
69
+
70
+
25
71
  ```
26
72
 
27
73
 
28
74
 
29
- の部分が変。
30
-
31
-
32
-
33
- wなら〜とかの時の処理は、
34
-
35
-
36
-
37
- 『y以外は2倍』なのに、結果の条件判断では『カウンタが3の倍数なら』となっている。
38
-
39
-
40
-
41
- 仮にyがないものであれば、
42
-
43
-
44
-
45
- 1×2=2
46
-
47
- 2×2=4
48
-
49
- 4×2=8
50
-
51
- ...
52
-
53
-
54
-
55
- という風に、『2の倍数』になる。
56
-
57
-
58
-
59
- 質問のコードでは、2と3の倍数、つまり、最小公倍数である、6の倍数の時しか真にならない。
60
-
61
-
62
-
63
- 多分サンプルの入力例ではたまたま6の倍数になていんだと思
75
+ ですがダメではないですがちょともったいないで
76
+
77
+
78
+
64
-
79
+ 日本語にしてみましょう。
80
+
81
+
82
+
65
-
83
+ 『カウンタが3の倍数でないなら"Three"、
84
+
66
-
85
+ カウンタが3の倍数なら"Four"』
86
+
87
+
88
+
89
+ です。
90
+
91
+
92
+
93
+ なんか、仰々しくないですか?
94
+
95
+
96
+
97
+ だってお互い、裏と表ですよね。
98
+
99
+
100
+
67
- それと
101
+ だから
68
102
 
69
103
 
70
104
 
@@ -76,49 +110,31 @@
76
110
 
77
111
  cout << "Three" << "\n";
78
112
 
113
+ }else{
114
+
115
+ cout << "Four" << "\n";
116
+
79
117
  }
80
118
 
81
119
 
82
120
 
83
- else if(count % 3 == 0) {
84
-
85
- cout << "Four" << "\n";
86
-
87
- }
88
-
89
-
90
-
91
121
  ```
92
122
 
93
123
 
94
124
 
95
- ですが、ダメではないですが、ちょっともったいないですね。
96
-
97
-
98
-
99
- 日本語にしてみましょう。
100
-
101
-
102
-
103
- 『カウンタが3の倍数でないなら"Three"、
104
-
105
- カウンタが3の倍数なら"Four"』
106
-
107
-
108
-
109
- です。
110
-
111
-
112
-
113
- なんか、仰々しくないですか
125
+ とシンプルにやればいの
126
+
127
+
128
+
114
-
129
+ ---
130
+
131
+
132
+
115
-
133
+ [追記0]
116
-
134
+
135
+
136
+
117
- だってお互い表ですよね。
137
+ それと問題文を読む
118
-
119
-
120
-
121
- だから、
122
138
 
123
139
 
124
140
 
@@ -126,56 +142,20 @@
126
142
 
127
143
 
128
144
 
129
- if(count % 3 != 0) {
145
+ 桃色、白色、緑色
130
-
131
- cout << "Three" << "\n";
146
+
132
-
133
- }else{
147
+ Three
148
+
149
+
150
+
134
-
151
+ 桃色、白色、緑色、黄色
152
+
135
- cout << "Four" << "\n";
153
+ Four
136
-
137
- }
138
-
139
-
140
154
 
141
155
  ```
142
156
 
143
157
 
144
158
 
145
- とシンプルにやればいいのでは?
146
-
147
-
148
-
149
- ---
150
-
151
-
152
-
153
- [追記0]
154
-
155
-
156
-
157
- それと、問題文を読むと、
158
-
159
-
160
-
161
- ```ここに言語を入力
162
-
163
-
164
-
165
- 桃色、白色、緑色
166
-
167
- → Three
168
-
169
-
170
-
171
- 桃色、白色、緑色、黄色
172
-
173
- → Four
174
-
175
- ```
176
-
177
-
178
-
179
159
  ですよね。
180
160
 
181
161
 

2

打ち間違い

2021/06/13 15:17

投稿

BeatStar
BeatStar

スコア4962

test CHANGED
@@ -26,7 +26,7 @@
26
26
 
27
27
 
28
28
 
29
- 非常にの部分が変。
29
+ の部分が変。
30
30
 
31
31
 
32
32
 

1

追記0

2021/06/13 15:13

投稿

BeatStar
BeatStar

スコア4962

test CHANGED
@@ -143,3 +143,87 @@
143
143
 
144
144
 
145
145
  とシンプルにやればいいのでは?
146
+
147
+
148
+
149
+ ---
150
+
151
+
152
+
153
+ [追記0]
154
+
155
+
156
+
157
+ それと、問題文を読むと、
158
+
159
+
160
+
161
+ ```ここに言語を入力
162
+
163
+
164
+
165
+ 桃色、白色、緑色
166
+
167
+ → Three
168
+
169
+
170
+
171
+ 桃色、白色、緑色、黄色
172
+
173
+ → Four
174
+
175
+ ```
176
+
177
+
178
+
179
+ ですよね。
180
+
181
+
182
+
183
+ よーく見てください。
184
+
185
+
186
+
187
+ 桃色から緑色までは共通で、
188
+
189
+ 『黄色があるかどうか』で分岐しています。
190
+
191
+
192
+
193
+ 並びが完全固定だと面倒ですが、
194
+
195
+ 順不同らしいので、
196
+
197
+
198
+
199
+ 『黄色が一つでもあれば"Four",
200
+
201
+ そうでないならThree"』
202
+
203
+
204
+
205
+ とした方が楽かも。
206
+
207
+
208
+
209
+ そうすれば、
210
+
211
+
212
+
213
+ for文でリニアサーチして、黄色があればフラグで…
214
+
215
+
216
+
217
+ みたいにすれば簡単にいける。
218
+
219
+
220
+
221
+ ただ、勉強としては『正しいこと』よりも、
222
+
223
+
224
+
225
+ **『自分で考え、自分で調べる』が重要ですので、
226
+
227
+ **
228
+
229
+ 悪くはないと思いますよ。