回答編集履歴
5
StringBuilderを使いまわすコードに変更
test
CHANGED
@@ -10,13 +10,17 @@
|
|
10
10
|
|
11
11
|
int count = 0;
|
12
12
|
|
13
|
+
StringBuilder builder = new StringBuilder("0000 - 0000 = 0000");
|
14
|
+
|
13
15
|
for(int a = 2000; a < 10000; a++){
|
16
|
+
|
17
|
+
builder.replace(0, 4, Integer.toString(a));
|
14
18
|
|
15
19
|
Label: for(int b = 1000; b <= a - 1000; b++){
|
16
20
|
|
17
|
-
|
21
|
+
builder.replace(7, 11, Integer.toString(b))
|
18
22
|
|
19
|
-
|
23
|
+
.replace(14, 18, Integer.toString(a - b));
|
20
24
|
|
21
25
|
for(String number: numbers){
|
22
26
|
|
@@ -26,7 +30,7 @@
|
|
26
30
|
|
27
31
|
count++;
|
28
32
|
|
29
|
-
System.out.println(builder);
|
33
|
+
//System.out.println(builder);
|
30
34
|
|
31
35
|
}
|
32
36
|
|
@@ -40,4 +44,4 @@
|
|
40
44
|
|
41
45
|
```
|
42
46
|
|
43
|
-
ち
|
47
|
+
ちょっと変えました.Ideoneでの実行時間が10秒台と少し短縮されました.
|
4
コードミスを修正
test
CHANGED
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
StringBuilder builder = new StringBuilder();
|
18
18
|
|
19
|
-
builder.append(a).append(" - ").append(b).append
|
19
|
+
builder.append(a).append(" - ").append(b).append(" = ").append(a - b);
|
20
20
|
|
21
21
|
for(String number: numbers){
|
22
22
|
|
@@ -32,10 +32,12 @@
|
|
32
32
|
|
33
33
|
}
|
34
34
|
|
35
|
-
System.out.println("答えは" + count)
|
35
|
+
System.out.println("答えは" + count);
|
36
36
|
|
37
37
|
}
|
38
38
|
|
39
39
|
}
|
40
40
|
|
41
41
|
```
|
42
|
+
|
43
|
+
ちなみにIdeoneで試したところ,12秒以上かかりました.もっといい方法があるのでしょう・・・
|
3
最後の}忘れ
test
CHANGED
@@ -36,4 +36,6 @@
|
|
36
36
|
|
37
37
|
}
|
38
38
|
|
39
|
+
}
|
40
|
+
|
39
41
|
```
|
2
一部処理の変更
test
CHANGED
@@ -18,17 +18,15 @@
|
|
18
18
|
|
19
19
|
builder.append(a).append(" - ").append(b).append.(" = ").append(a - b);
|
20
20
|
|
21
|
-
String result = builder.toString();
|
22
|
-
|
23
21
|
for(String number: numbers){
|
24
22
|
|
25
|
-
if(
|
23
|
+
if(builder.indexOf(number) == -1) continue Label;
|
26
24
|
|
27
25
|
}
|
28
26
|
|
29
27
|
count++;
|
30
28
|
|
31
|
-
System.out.println(
|
29
|
+
System.out.println(builder);
|
32
30
|
|
33
31
|
}
|
34
32
|
|
1
「何通りか」をカウントしていなかったので追加
test
CHANGED
@@ -7,6 +7,8 @@
|
|
7
7
|
public static void main(String args[]){
|
8
8
|
|
9
9
|
final String[] numbers = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
|
10
|
+
|
11
|
+
int count = 0;
|
10
12
|
|
11
13
|
for(int a = 2000; a < 10000; a++){
|
12
14
|
|
@@ -24,12 +26,16 @@
|
|
24
26
|
|
25
27
|
}
|
26
28
|
|
29
|
+
count++;
|
30
|
+
|
27
31
|
System.out.println(result);
|
28
32
|
|
29
33
|
}
|
30
34
|
|
31
35
|
}
|
32
36
|
|
37
|
+
System.out.println("答えは" + count)
|
38
|
+
|
33
39
|
}
|
34
40
|
|
35
41
|
```
|