回答編集履歴
2
副作用→弊害に変更(「副作用」という言葉を避けた)
test
CHANGED
@@ -176,7 +176,7 @@
|
|
176
176
|
|
177
177
|
xwork = x;
|
178
178
|
|
179
|
-
#if 0 /* 0になった時点で(xから取り出すものがなくなった時点で)終了できるが
|
179
|
+
#if 0 /* 0になった時点で(xから取り出すものがなくなった時点で)終了できるがなんか弊害があるかも */
|
180
180
|
|
181
181
|
while ( xwork != 0 )
|
182
182
|
|
1
最後の例の演算を減らした。
test
CHANGED
@@ -148,7 +148,7 @@
|
|
148
148
|
|
149
149
|
|
150
150
|
|
151
|
-
あと、可読性は落ちますが、
|
151
|
+
あと、可読性は落ちますが、ifを通る回数を減らしたり、xをxworkにコピーして破壊しながら3ビットずつ取り出すとかすればちょっと速くなるかもしれません。
|
152
152
|
|
153
153
|
```cpp
|
154
154
|
|
@@ -170,15 +170,31 @@
|
|
170
170
|
|
171
171
|
int equal2 = 0;
|
172
172
|
|
173
|
-
|
173
|
+
int xwork;
|
174
|
+
|
175
|
+
|
176
|
+
|
174
|
-
|
177
|
+
xwork = x;
|
178
|
+
|
179
|
+
#if 0 /* 0になった時点で(xから取り出すものがなくなった時点で)終了できるが副作用があるかも */
|
180
|
+
|
181
|
+
while ( xwork != 0 )
|
182
|
+
|
183
|
+
#else
|
184
|
+
|
175
|
-
for ( int i = 0 ; i < 9 ; ++i )
|
185
|
+
for ( int i = 0 ; i < 9 ; ++i )
|
186
|
+
|
187
|
+
#endif
|
188
|
+
|
189
|
+
{
|
176
190
|
|
177
191
|
int v;
|
178
192
|
|
179
193
|
|
180
194
|
|
181
|
-
v =
|
195
|
+
v = xwork & 0b111;
|
196
|
+
|
197
|
+
xwork >>= 3;
|
182
198
|
|
183
199
|
|
184
200
|
|
@@ -234,4 +250,6 @@
|
|
234
250
|
|
235
251
|
}
|
236
252
|
|
253
|
+
|
254
|
+
|
237
255
|
```
|