Rekursive formel in java(max number soll ausgegeben werden)?

...komplette Frage anzeigen

2 Antworten

Der Ansatz ist gut es fehlt nur was. Du gehst zwar alle Zahlen durch aber du prüfst nicht ob es die höchste Zahl ist. Am besten übergibst du noch einen Wert, den nennst du max und in der if machst du noch vor das return if (input[pos] > max dann max = input[pos]



am ende dann return max und da sollte nicht 0 returnt werden

Ändere die Abfrage von >= auf >

Statt 0 gibst Du input[pos] zurück.

leonardomessi 31.01.2016, 15:45

also es hat geklappt aber bitte sag mir wieso das so ist ich verstehe es nicht !!

0
PROGRAM4FUN 31.01.2016, 16:43
@leonardomessi

Die erste Überlegung ist, was Du zurück geben muss, wenn dein Array nur ein Element hat (bzw. pos == 0). Dann ist das größte Element automatisch das Element selbst. Also ist die Abbruchbedingung der Rekursion pos == 0. Wenn das Array aus mehr als einem Element besteht, ist das Maximum rekursiv definiert, durch das Maximum aus dem aktuellen wert an der Stelle pos und dem Maximum aller Werte der vorherigen stellen.

static double rekursiveMax(double[] input, int pos) { 
if (pos > 0){
return Math.max(input[pos], rekursiveMax(input, pos - 1));
}
return input[pos];
}
2

Was möchtest Du wissen?