Hallo,
ich habe eine Aufgabe zur Rekursion, die ich nicht im Stande bin zu lösen. Es war eine Klausuraufgabe, die ich am vergangenen Samstag geschrieben habe.
Man stelle sich eine Waage vor und soll die entsprechenden Gegengewichte ermitteln. Der gegebene Code sah wie folgt aus:
Auf meine Nachfrage, ob der unklaren Aufgabenstellung habe ich gesagt bekommen, dass es einzig darum ginge herauszufinden, welche Gewichtskombinationen sich aus den vier Gewichten ergeben. Die sollten dann auch noch ausgegeben werden.
Meine Idee einen Baum mit einer Wurzel und je nach Tiefe (mit n=3, n=2, n=1) laufen zu lassen, ist jedenfalls nicht richtig. Ich habe zuhause weiter probiert, komme aber auf keinen Ansatz. Mein bisheriges Codefragment füge ich jetzt mal ein:
Das usw. steht übrigens nicht für einen festen Übergabeparameter, sondern es können auch mehr sein.
Wer Spass und Zeit hat, kann sich das Problem gerne antun. Ich habe die Aufgabe jedenfalls nicht bewältigt. Das muss aber nichts heißen
ich habe eine Aufgabe zur Rekursion, die ich nicht im Stande bin zu lösen. Es war eine Klausuraufgabe, die ich am vergangenen Samstag geschrieben habe.
Man stelle sich eine Waage vor und soll die entsprechenden Gegengewichte ermitteln. Der gegebene Code sah wie folgt aus:
Code:
public class Gegengewichte{
public static void ermittle(gewichte, usw.){
// hier sollte die rekursive Funktion erweitert werden
}
public static void main(String[] args){
int[] gewichte = {22, 6, 4, 18};
ermittle( gewichte, usw.);
Auf meine Nachfrage, ob der unklaren Aufgabenstellung habe ich gesagt bekommen, dass es einzig darum ginge herauszufinden, welche Gewichtskombinationen sich aus den vier Gewichten ergeben. Die sollten dann auch noch ausgegeben werden.
Meine Idee einen Baum mit einer Wurzel und je nach Tiefe (mit n=3, n=2, n=1) laufen zu lassen, ist jedenfalls nicht richtig. Ich habe zuhause weiter probiert, komme aber auf keinen Ansatz. Mein bisheriges Codefragment füge ich jetzt mal ein:
Code:
package rekursion;
public class Gegengewicht {
public static void main(String[] args) {
int[] gewichte = {22,6,4,18};
Gegengewicht.ermittle(gewichte, gewichte.length);
}
private static void ermittle(int[] gewichte, int length) {
// Rekursionsanfang
if(length<0) {
for(int i=0; i<gewichte.length; i++){
System.out.print(gewichte[i]+" - ");
}
}// Rekursionsschritt
else {
// Meine Ideen, leider ohne Wirkung, vermutlich fehlen Parameter:
// ermittle(gewichte, length-1);
// oder: ermittle(gewichte, length);
}
}
}
Wer Spass und Zeit hat, kann sich das Problem gerne antun. Ich habe die Aufgabe jedenfalls nicht bewältigt. Das muss aber nichts heißen