Habe eine Aufgabe wo ich mein Maximum berechnen soll. Also ich gebe viele Zahlen ein und dann soll das Programm die größte Zahl herauspicken und anzeigen. So langsam denke ich verstehe ich die Rekursion... Aber irgendwas stimmt nicht ganz:
also für mehr als eine Zahl brauchst du ein Array. Deine Rekursion musst du dann dieses array übergeben.
und für die eingabe von mehren dingen benötigst du eine schleife ... oder eine zweite rekursion ... wobei es mit einer schleife einfacher wäre und ggf. kann es leichter sein, wenn du zunächst eingeben lässt, wie viele zahlen eingegeben werden sollen, damit du die array größe festlegen kannst
... ja das zitat wollte ich zunächst schreiben, aber es geht einfacher ...
du musst deine temp variable ja jedes mal neu einlesen, d.h. diesesmal kommt die abfrage in die rekursion.
Ich hab leider eine Aufgabe, wo ich alle Zahlen ganz einfach eingebe und am Ende kommt dann nur eine Zahl raus. Also die größte. Und Rekursion soll mit rein.
Kann man denn Rekursion und Arrays zusammen packen?
Dein Programm entspricht nicht ganz dem divide&conquer-Prinzip, Flown.
Bei dem Prinzip geht es darum, etwas komplexes so weit zu vereinfachen, bis man auf einfache Art und Weise das machen kann, was man eigentlich für das Gesamte beabsichtigt. D. h. man müsste gemäß dieses Prinzips das Array so lange reduzieren, bis nur noch ein einziges Element übrig bleibt (das ist die Abbruchbedingung für die Rekursion). Und genau dieses Element wäre dann der erste Maximumwert der Rekursion, der dann von der Methode zurückgegeben wird. Was ich damit sagen will: Das curMax-Argument braucht man nicht.
Aber eigentlich finde ich das ziemlich unsinnig, das rekursiv zu programmieren. Ich vermute, das ist nur zu Übungszwecken, stimmt das?
@Minzee:
Mein Programm war nur ein Beispiel für eine schnelle Rekursion, kein Hintergedanken zu Divide&Conquer und es war vor allem eine Analogie!
[edit]Aber was noch wichtiger ist, diese Rekursion ist eine Emulation für eine Schleife mehr nicht.[/edit]
Also erst mal danke fürs antworten!
Ich komme leider erst heute wieder zu meinen Aufgaben Ich meide diese...
@ minzee: Leider muss ich die Rekursion in der Übung anwenden. Klar könnte ich etwas anderes machen, aber In der Aufgabe will der Prof eine Rekusion. Okay, ich versuche es dann....
Naja es ist recht ungewöhnlich maximum "online" zu berechnen. Normalerweise will man das Maximum aus einem Bestand (resp. Array) wissen.
Ich helf dir mal ein bisschen weiter:
Java:
publicstaticintmaximum(Scanner scanner){int nr = scanner.nextInt();if(nr ==0)returnInteger.MIN_VALUE;int rekResult =maximum(scanner);return/*TODO: max zwischen rekResult und nr zrückliefern*/;}