Rekursion

Javanoob199

Mitglied
Hey, ich habe eine kurze Frage warum bei der 11.Zeile steht, dass int nicht in int[] konvertiert werden kann. In den vorherigen Zeilen ging es doch.
Würde mich sehr über eure Hilfe freuen.





Java:
public static int sumUpNegatives ( int arr[],int n )
    {
       while (0<n && n<arr.length)
       {
        if (arr[n]>0)
        {
           return 0;
        }
        else
        {
            return arr[n]+sumUpNegatives(arr[n],(n-1));
        }
       }
    }
 

DrPils

Bekanntes Mitglied
Wenn die Methode nicht in deinen while loop geht, was soll sie dann returnen?
Bist du dir eigentlich sicher ob der while Loop hier Sinn macht? Wie oft wird er denn wiederholt?
 

Javanoob199

Mitglied
War mir bei der while Loop selber nicht sicher. Ich wusste nur nicht wie ich in die Methode einbaue, dass 0<n<arr.length ist. Da dachte ich mir ich könnte es mit einer while-Schleife lösen, scheint aber nicht so zu sein
 

DrPils

Bekanntes Mitglied
Also wenn es dir nur um die Überprüfung des boolean Ausdruck geht, dann sollte da wohl ein ifstehen. whilemacht nur Sinn wenn du einen Code Block wiederholt aufrufen willst.
 

Javanoob199

Mitglied
Habe das jetzt so geschrieben, wäre das so richtig ?

Java:
public static int sumUpNegatives ( int arr[],int n )
    {
        if(0>n)
        {
            throw new RuntimeException ("n cant be negative");
        }
        if(n>arr.length)
        {
            throw new RuntimeException ("n cant be longer then arr.length");
        }
        if (arr[n]>0)
        {
           return 0;
        }
        else
        {
            return arr[n]+sumUpNegatives(arr,(n-1));
        }
       
    }
 

DrPils

Bekanntes Mitglied
Ich weiß nicht was die Methode machen soll. Ob sie richtig ist kannst du ja testen. Die Frage ob man es evtl besser machen könnte, kann man dir beantworten wenn man weiß was du vorhast.
 

Javanoob199

Mitglied
Entwickle eine rekursive Methode int sumUpNegatives( int[] arr, int n ). Die Methode sumUpNegatives bildet die Summe der negativenWete im Feld arr im Bereich von arr[0] bis arr[n] mit 0<=n <arr.length und gibt die ermittelte Summe zurück.
Das war die Aufgabenstellung.
 
K

kneitzel

Gast
Das gilt für beide Threads - denn das Problem ist bei beiden gleich:

Rekursion ist immer gleich aufgebaut:
- Du hast eine Abbruchbedingung. Es soll ja nicht endlos laufen.
- Du machst etwas, was sich selbst aufruft.

Damit kannst Du es immer selbst durchspielen:
- Was ist die Abbruchbedingung?
- Was ist zu machen, wenn kein Abbruch vorliegt.

Das musst Du als erstes sauber formulieren. Dazu brauchst Du kein Java.

Wenn ich Leute in einen Raum rekursiv leeren möchte, dann ist die Formulierung:
- Raum leer? -> fertig
- Nimm nächsten Menschen und schmeiss ihn raus. Danach neuer check (=rekursiver Aufruf)

Also auf der Ebene musst Du es formulieren - So dass Du eine klare Vorstellung vom Algorithmus hast und dies mit Stift und Papier auch durchspielen könntest. (Das ist, was Dir aus meiner Sicht derzeit fehlt!)
 

Javanoob199

Mitglied
Java:
if (arr[n]>0)
        {
            return sumUpNegatives(arr,(n-1));
        }

Nach langen Überlegen kam ich zu diesem Ergebnis, ich habe es auch auf Stift und Papier versucht. Jedoch ist auch dieser Ansatz nicht ganz richtig , da n damit ins negative geht und ich weiß nicht wie ich es vermeiden soll.
Übrigens bin euch allen sehr dankbar für eure Antworten, insbesondere @kneitzel für Ihre ausführlichen Tipps. Ich verstehe das Prinzip, aber mir fällt es sehr schwer es umzusetzen.
 

Javanoob199

Mitglied
Java:
if(0>n)
        {
            throw new RuntimeException ("n cant be negative");
        }
        if(n>arr.length)
        {
            throw new RuntimeException ("n cant be longer than arr.length");
        }
        if(n==0)
        {
            return arr[n];
        }
        if (arr[n]>0)
        {
            return sumUpNegatives(arr,(n-1));
        }
        else
        {
            return arr[n]+sumUpNegatives(arr,(n-1));
        }

So sieht meine fertige Methode aus. Nun gibt sie auch den korrekten Wert aus. Danke an alle die was geschrieben haben, das hat mir sehr weitergeholfen !
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
K Verstehe Rekursion nicht ganz Java Basics - Anfänger-Themen 7
P Frage zu Rekursion und Backtracking Java Basics - Anfänger-Themen 2
DiyarcanZeren Rekursion in Java Java Basics - Anfänger-Themen 5
M Variablen Rekursion mit 2 Parameteren Java Basics - Anfänger-Themen 4
sserio Rekursion größten Primfaktor finden funktioniert nicht Java Basics - Anfänger-Themen 8
M Lösungsweg Rekursion Java Basics - Anfänger-Themen 1
C StackOverflow bei Rekursion Java Basics - Anfänger-Themen 7
D Rekursion - Ich raffs nicht Java Basics - Anfänger-Themen 16
N Methoden Rekursion mit Kreisen Java Basics - Anfänger-Themen 7
P9cman Vokale in einem String überprüfen mittels Rekursion Java Basics - Anfänger-Themen 8
T Rekursion Programmierverständnis Java Basics - Anfänger-Themen 12
K Rekursion: Rechenmauer mit Array erstellen Java Basics - Anfänger-Themen 17
K Rekursion einer Zahlenfolge (Ab- und Aufzählung) Java Basics - Anfänger-Themen 6
Zeppi Rekursion Java Basics - Anfänger-Themen 15
V Backtracking und Rekursion Java Basics - Anfänger-Themen 15
L REKURSION Java Basics - Anfänger-Themen 13
Kirby.exe Rekursion Java Basics - Anfänger-Themen 7
N for Schleife durch Rekursion ersetzen Java Basics - Anfänger-Themen 6
X Rekursion Java Basics - Anfänger-Themen 3
H Rekursion Java Basics - Anfänger-Themen 2
D Erste Schritte Rekursion Java Basics - Anfänger-Themen 13
M Rekursion Tage Ansteckung gesamte Bevölkerung Java Basics - Anfänger-Themen 15
M Java Rekursion Java Basics - Anfänger-Themen 9
G Java Rekursion Java Basics - Anfänger-Themen 5
J Rekursion Klausur Aufgabe Java Basics - Anfänger-Themen 2
N Rekursion Java Basics - Anfänger-Themen 18
M Verständnisproblem der Rekursion bei Arrays Java Basics - Anfänger-Themen 8
X Rekursion Rätsel Java Basics - Anfänger-Themen 4
N Klassen Rekursion mit Feldern von Objekten Java Basics - Anfänger-Themen 14
W Rekursion Java Basics - Anfänger-Themen 0
D Konsolenausgabe Zahlenfolge Rekursion Java Basics - Anfänger-Themen 3
J Ping Pong Methode mit Rekursion Java Basics - Anfänger-Themen 1
N Rekursion Java Basics - Anfänger-Themen 1
B Rekursion Basic Java Basics - Anfänger-Themen 15
O Rekursion Mergesort Java Basics - Anfänger-Themen 18
G Rekursion Java Basics - Anfänger-Themen 20
M Rekursion Java Basics - Anfänger-Themen 7
F Hilfe bei Rekursion... Java Basics - Anfänger-Themen 4
A Mit Rekursion Zufallszahlen erstellen und größte finden Java Basics - Anfänger-Themen 5
B Rekursion Wurzel Java Basics - Anfänger-Themen 39
O Rekursion ordentlich aufschreiben Java Basics - Anfänger-Themen 2
B Rekursion verstehen Java Basics - Anfänger-Themen 4
O Rekursion Java Basics - Anfänger-Themen 2
E Rekursion verstehen. Java Basics - Anfänger-Themen 4
E Rekursion Kisten befüllen Java Basics - Anfänger-Themen 10
E Rekursion verstehen Java Basics - Anfänger-Themen 2
O Rekursion, String Java Basics - Anfänger-Themen 8
N Invertierte Rekursion??? Java Basics - Anfänger-Themen 5
M Bitte um Hilfe bei Quellcode (Rekursion) Java Basics - Anfänger-Themen 6
T Rekursion Warum bricht meine Funktion nicht ab Java Basics - Anfänger-Themen 4
A Hilfe bei Rekursion,Ich verstehe nicht,wie funktioniert die Rekursion in der Methode "walk" Java Basics - Anfänger-Themen 13
L Rekursion im Baum Java Basics - Anfänger-Themen 9
E Pfade eines Baums angeben ohne Rekursion Java Basics - Anfänger-Themen 20
L Rekursion Baumknoten Java Basics - Anfänger-Themen 8
L Rekursion größtes Zeichen Java Basics - Anfänger-Themen 8
L Rekursion Modulo Java Basics - Anfänger-Themen 7
I Rekursion Java Basics - Anfänger-Themen 11
H Rekursion Java Basics - Anfänger-Themen 7
N Methoden zur Rekursion (catalansche Zahlen) Java Basics - Anfänger-Themen 4
S Frage zu Rekursion... Java Basics - Anfänger-Themen 15
N Java catalansche Zahlen (Rekursion) Java Basics - Anfänger-Themen 5
S Noch eine Frage zur Rekursion... Java Basics - Anfänger-Themen 11
S Frage zu einer Rekursion Java Basics - Anfänger-Themen 15
F Methoden Abbruchbedingung bei Rekursion Java Basics - Anfänger-Themen 2
Z Rekursion Primzahlen Java Basics - Anfänger-Themen 1
K Rekursion Verständnisfrage Java Basics - Anfänger-Themen 19
L Methoden Rekursion gibt alten Wert wieder Java Basics - Anfänger-Themen 37
M Rekursion Minimums Suche Java Basics - Anfänger-Themen 12
J Rekursion Java Basics - Anfänger-Themen 5
F Aufgabe Rekursion Binärer Baum Java Basics - Anfänger-Themen 15
N Rekursion Java Basics - Anfänger-Themen 2
B Rekursion - Übung Java Basics - Anfänger-Themen 2
B Problem beim grundsätzlichen Verständnis bei Rekursion mit 2-dimensionalen Array Java Basics - Anfänger-Themen 6
P Rekursion Java Basics - Anfänger-Themen 19
G Rekursion Beispiel Java Basics - Anfänger-Themen 3
M Rekursion schreiben Java Basics - Anfänger-Themen 16
A Rekursion Funktion in eine Iterativ Funktion umwandeln Java Basics - Anfänger-Themen 9
T Array Rekursion Java Basics - Anfänger-Themen 1
B lineare und schlichte Rekursion Java Basics - Anfänger-Themen 1
A Rekursion Java Basics - Anfänger-Themen 2
B Rekursion Java Basics - Anfänger-Themen 3
A Rekursion stoppt an der falschen Stelle Java Basics - Anfänger-Themen 4
A Lineare Rekursion Java Basics - Anfänger-Themen 6
P Hilfe zur Rekursion? Java Basics - Anfänger-Themen 2
B Rekursion Schneeflocke - Kurze Frage zur Methode Java Basics - Anfänger-Themen 11
L Rekursion Java Basics - Anfänger-Themen 4
S Rekursion Rückgabe - Türme von Hanoi Java Basics - Anfänger-Themen 16
kilopack15 Rekursion und Schleifen Java Basics - Anfänger-Themen 27
E Rekursion Java Basics - Anfänger-Themen 10
G rekursion nicht verstanden Java Basics - Anfänger-Themen 5
K Rekursion-Verständnisfrage Java Basics - Anfänger-Themen 4
E Methoden String wird in Rekursion nicht überschrieben Java Basics - Anfänger-Themen 2
T 2fach Rekursion. Java Basics - Anfänger-Themen 4
N Rekursion mit if-Anweisung Java Basics - Anfänger-Themen 10
K Methoden Zahlensysteme umwandeln mittels Rekursion Java Basics - Anfänger-Themen 5
H Rekursion Binäre Suche Java Basics - Anfänger-Themen 2
P Methoden Primzahltest mit Rekursion Java Basics - Anfänger-Themen 3
C Rekursion überführen in eine normale methode Java Basics - Anfänger-Themen 1
M Methoden Rekursion nachvollziehen Java Basics - Anfänger-Themen 4
C Rekursion Java Basics - Anfänger-Themen 6

Ähnliche Java Themen

Neue Themen


Oben