package EAA_Z4;
public class Rucksack {
static int masse[] = {150,111,252,173,350};
static int wert[] = {2,1,3,2,3};
static int max = 450;
static int optimum = 0;
static int aufrufe = 0;
static boolean feld[] = new boolean[masse.length];
public static void main(String args[ ] ) {
weg(0, 0, 0);
System.out.println("Aufrufe:"+aufrufe);
}
static void weg(int n, int sum_masse, int sum_wert) {
if (sum_masse > max) return;
if (n == feld.length) {
if (sum_wert > optimum) {
optimum = sum_wert;
ausgabe(sum_masse, sum_wert);
}
} else {
aufrufe++;
feld[n] = false;
weg(n + 1, sum_masse, sum_wert);
feld[n] = true;
weg(n + 1, sum_masse + masse[n], sum_wert + wert[n]);
}
}
static void ausgabe(int sum_masse, int sum_wert) {
String text = "";
for (int i = 0; i feld.length; i++)
if ( feld[i] ) text += masse[i] + " ";
System.out.println("{" + text + "} Masse: " + sum_masse + "Wert: " + sum_wert);
}
}
|