Hallo,
ich bin noch blutiger Anfänger insbesondere, wenn es um rekursive Methoden geht. Ich bin dabei eine iterative Methode in eine rekursive Methode umzuschreiben. Das Array, was ich zurückerhalte ist auch schon fast richtig. Lediglich die letzten beiden Array-Elemente sind noch nicht richtig. Das vorletzte Elemente hat den Wert der letzten Berechnung, was den letzten Wert offensichtlich falsch macht.
Ich versuche also folgende Methode umzuschreiben:
Die Methode summiert zwei nebeneinander liegende Elemente, also erstes Element + zweites Element, zweites Element + drittes Element usw. bis zum letzten Element, welches mit 1 summiert wird, da danach ja kein Element mehr folgt.
Also aus folgendem Array:
[1, 2, 3, 4, 5] wird [3, 5, 7, 9, 6].
Nun habe ich eine Hilfsmethode und den Methodenaufruf geschrieben, aber irgendwo scheine ich noch einen Denkfehler zu haben.
Aktuell erhalte ich noch das Array [3, 5, 7, 12, 9] anstatt [3, 5, 7, 9, 6].
Für Hilfe wäre ich sehr dankbar!
ich bin noch blutiger Anfänger insbesondere, wenn es um rekursive Methoden geht. Ich bin dabei eine iterative Methode in eine rekursive Methode umzuschreiben. Das Array, was ich zurückerhalte ist auch schon fast richtig. Lediglich die letzten beiden Array-Elemente sind noch nicht richtig. Das vorletzte Elemente hat den Wert der letzten Berechnung, was den letzten Wert offensichtlich falsch macht.
Ich versuche also folgende Methode umzuschreiben:
Java:
public static void sumArray(double[] array) {
for (int t = 0; t < array.length - 1; t++) {
array[t] = array[t] + array[t + 1];
}
array[array.length - 1] += 1;
}
Die Methode summiert zwei nebeneinander liegende Elemente, also erstes Element + zweites Element, zweites Element + drittes Element usw. bis zum letzten Element, welches mit 1 summiert wird, da danach ja kein Element mehr folgt.
Also aus folgendem Array:
[1, 2, 3, 4, 5] wird [3, 5, 7, 9, 6].
Nun habe ich eine Hilfsmethode und den Methodenaufruf geschrieben, aber irgendwo scheine ich noch einen Denkfehler zu haben.
Java:
public static void recursiveHelper(double[] array, int t) {
if(t == array.length-1){ return;}
array[t] = array[t] + array[t+1];
array[array.length-1] += 1;
recursiveHelper(array, t+1);
}
public static void sumArray(double[] array) {
recursiveHelper(array, 0);
}
Aktuell erhalte ich noch das Array [3, 5, 7, 12, 9] anstatt [3, 5, 7, 9, 6].
Für Hilfe wäre ich sehr dankbar!