回答編集履歴
2
誤ったところを修正
answer
CHANGED
@@ -5,10 +5,10 @@
|
|
5
5
|
|
6
6
|
```lang-c
|
7
7
|
//関数だけ
|
8
|
-
|
8
|
+
|
9
9
|
int knapsack(int i, int w){ //iはi番目の商品、wはi番目の商品の処理の時の残りの重さ
|
10
10
|
if(i >= n) return 0; //要素数を超えた商品は存在しない
|
11
|
-
if(w - w_i[i] < 0) return
|
11
|
+
if(w - w_i[i] < 0) return knapsack(i + 1, w); //重さの制限を超えたときは商品iは選ばない
|
12
12
|
|
13
13
|
int v1, v2;
|
14
14
|
v1 = knapsack(i + 1, w); //商品iは取らなかった時の最大価値
|
1
回答内容に誤りがあった
answer
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
```lang-c
|
7
7
|
//関数だけ
|
8
|
-
|
8
|
+
//※このプログラムは間違っています!今修正中です!
|
9
9
|
int knapsack(int i, int w){ //iはi番目の商品、wはi番目の商品の処理の時の残りの重さ
|
10
10
|
if(i >= n) return 0; //要素数を超えた商品は存在しない
|
11
11
|
if(w - w_i[i] < 0) return 0; //重さの制限
|