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

回答編集履歴

6

ご指摘内容を反映

2018/05/30 08:15

投稿

tamina
tamina

スコア136

answer CHANGED
@@ -33,11 +33,13 @@
33
33
  数値リストAA.add(数値リストA);
34
34
  }
35
35
 
36
+ tmp数値リストA<==数値リストA
36
- 数値リストA.add(数値tmp);
37
+ tmp数値リストA.add(数値tmp);
37
- if(数値リストAAに数値リストAが登録済みでない)
38
+ if(数値リストAAにtmp数値リストAが登録済みでない)
38
39
  {
39
- 数値リストAA.add(数値リストA);
40
+ 数値リストAA.add(tmp数値リストA);
40
41
  }
42
+
41
43
 
42
44
  }
43
45
  }

5

ご指摘内容を反映1

2018/05/30 08:14

投稿

tamina
tamina

スコア136

answer CHANGED
@@ -17,22 +17,30 @@
17
17
 
18
18
  再帰チェック(目的値、数値T、数値リストT、数値リストAA、数値リストA)
19
19
  {
20
- 数値リストTから数値を順に取り出し(数値TT)ループ
20
+ 数値リストTから数値を順に取り出し(数値TT)ループ
21
- {
21
+ {
22
- if(数値TT>数値T)
22
+ if(数値TT>数値T)
23
- {何もしない}
23
+ {何もしない}
24
- else if(数値リストAの総和+数値TT<目的値)
24
+ else if(数値リストAの総和+数値TT<目的値)
25
- {
25
+ {
26
- 数値リスト[].add(数値tmp);
26
+ 数値リストA.add(数値tmp);
27
- 再帰チェック(目的値、数値TT、数値リストT、数値リストAA、数値リストA)
27
+ 再帰チェック(目的値、数値TT、数値リストT、数値リストAA、数値リストA)
28
- }
28
+ }
29
- else
29
+ else
30
- {
30
+ {
31
-              if(数値リストAAに数値リストAが登録済みでない)
31
+ if(数値リストAAに数値リストAが登録済みでない)
32
-              {
32
+ {
33
-        数値リストAA.add(数値リストA);
33
+ 数値リストAA.add(数値リストA);
34
-              }
34
+ }
35
+
36
+ 数値リストA.add(数値tmp);
37
+ if(数値リストAAに数値リストAが登録済みでない)
38
+ {
39
+ 数値リストAA.add(数値リストA);
35
- }
40
+ }
41
+
36
- }
42
+ }
43
+ }
37
44
  }
45
+
38
46
  ```

4

ロジック修正

2018/05/30 08:12

投稿

tamina
tamina

スコア136

answer CHANGED
@@ -28,7 +28,10 @@
28
28
  }
29
29
  else
30
30
  {
31
+              if(数値リストAAに数値リストAが登録済みでない)
32
+              {
31
- 数値リストAA.add(数値リストA);
33
+        数値リストAA.add(数値リストA);
34
+              }
32
35
  }
33
36
  }
34
37
  }

3

ロジックを見やすく

2018/05/30 06:41

投稿

tamina
tamina

スコア136

answer CHANGED
@@ -1,27 +1,35 @@
1
1
  だいぶ愚直ですが、私だったら以下のような感じで。
2
2
 
3
3
  ```ここに言語を入力
4
+ main()
5
+ {
4
- 複数の数値をソート 数値リストT[]
6
+ 複数の数値をソート 数値リストT[]
5
- ある数値を定義 数値A
7
+ ある数値を定義 数値A
6
- 答えの数値リストを定義 数値リストAA[][]
8
+ 答えの数値リストを定義 数値リストAA[][]
7
- 答えの数値リストを定義 数値リストA[]
9
+ 答えの数値リストを定義 数値リストA[]
8
10
 
9
- 再帰チェック(目的値、数値リストT、数値リストAA、数値リストA)
11
+ 再帰チェック(目的値、int.max、数値リストT、数値リストAA、数値リストA)
12
+ 数値リストから最適な解を選択
10
13
 
11
- ⑥数値リストから最適な解を選択
14
+ }
12
15
 
13
16
  ----------------------------------------------------------------------------------
14
17
 
15
- 再帰チェック(目的値、数値リストT、数値リストAA、数値リストA)
18
+ 再帰チェック(目的値、数値T、数値リストT、数値リストAA、数値リストA)
16
19
  {
17
- 数値リストTから数値を順に取り出し(数値T)ループ
20
+ 数値リストTから数値を順に取り出し(数値TT)ループ
21
+ {
22
+ if(数値TT>数値T)
23
+ {何もしない}
18
- if(数値リストAの総和+数値T<目的値)
24
+ else if(数値リストAの総和+数値TT<目的値)
25
+ {
19
- 数値リスト[].add(数値tmp);
26
+ 数値リスト[].add(数値tmp);
20
- 再帰チェック(数値リストT、数値リストAA、数値リストA)
27
+ 再帰チェック(目的値、数値TT、数値リストT、数値リストAA、数値リストA)
21
- ①'
28
+ }
22
- else
29
+ else
30
+ {
23
- 数値リストAA.add(数値リストA);
31
+ 数値リストAA.add(数値リストA);
24
- ①'
32
+ }
25
- ⑤'ループ終わり
33
+ }
26
34
  }
27
35
  ```

2

コード表示されていなかった

2018/05/30 06:30

投稿

tamina
tamina

スコア136

answer CHANGED
@@ -23,4 +23,5 @@
23
23
  ④数値リストAA.add(数値リストA);
24
24
  ①'
25
25
  ⑤'ループ終わり
26
+ }
26
- }```
27
+ ```

1

ロジック修正

2018/05/30 06:24

投稿

tamina
tamina

スコア136

answer CHANGED
@@ -6,9 +6,7 @@
6
6
  ③答えの数値リストを定義 数値リストAA[][]
7
7
  ④答えの数値リストを定義 数値リストA[]
8
8
 
9
- ⑤数値リストTから数値を順に取り出し(数値T)ループ
10
- ⑥再帰チェック(目的値、数値リストT、数値リストAA、数値リストA)
9
+ ⑥再帰チェック(目的値、数値リストT、数値リストAA、数値リストA)
11
- ⑤'ループ終わり
12
10
 
13
11
  ⑥数値リストから最適な解を選択
14
12
 
@@ -16,12 +14,13 @@
16
14
 
17
15
  再帰チェック(目的値、数値リストT、数値リストAA、数値リストA)
18
16
  {
17
+ ⑤数値リストTから数値を順に取り出し(数値T)ループ
19
- ①if(数値リストAの総和+数値T<目的値)
18
+ ①if(数値リストAの総和+数値T<目的値)
20
- ②数値リスト[].add(数値tmp);
19
+ ②数値リスト[].add(数値tmp);
21
- ③再帰チェック(数値リストT、数値リストAA、数値リストA)
20
+ ③再帰チェック(数値リストT、数値リストAA、数値リストA)
22
- ①'
21
+ ①'
23
- ①else
22
+ ①else
24
- ④数値リストAA.add(数値リストA);
23
+ ④数値リストAA.add(数値リストA);
25
- ①'
24
+ ①'
26
- }
25
+ ⑤'ループ終わり
27
- ```
26
+ }```