Ja, dass weiß ich. Damit kann ich die Methode selbstständig noch mal aufrufen. Habe mich diesbezüglich auch etwas schlau gemacht und Tutorials auf YouTube angeschaut und Seiten nachgelesen... Ich verstehe nur halt nicht ganz, was verlangt wird also wie ich mir das Schrittweise vorstellen kann
Soweit habe ich es verstanden. Nur verstehe ich den Rest leider nicht Es fängt schon bei den "...." an nach n-2. Soll das bedeuten, dass es praktisch endlos geht? Weil eine Schleife nutze ich bei der Rekursion ja nicht.
Jetzt hast du mir zufällig einen Link geschickt, den ich auch offen hatte. Ja na das war ja nur meine Methode. Ich habe nur nicht verstanden, wie ich mit den n-1 und n-2 umgehen sollte ^^
Das was du da hast berechnet die Fakultät einer Zahl.. du sollst die Zahlen aber nur - separiert durch ein Leerzeichen - ausgeben.
Ich wüsste auch nicht warum deine Methode einen Rückgabewert braucht.
Code:
printRecursive(i : INT) : VOID
AUSGABE i
WENN i GROSSER 1
RUFE: printRecursive(i - 1)
Ist doch eigentlich ganz einfach: Du sollst eine Zahlenfolge ausgeben, die bei n beginnt und immer um 1 erniedrigt wird, solange bis du die 1 erreichst. Also, z.B. n = 10 => 10, 9, 8, 7, 6, 5, 4, 3, 2, 1
Das könntest du einfach in einer Schleife machen, sollst du aber nicht sondern das per Rekursion lösen. Das heißt du sollst eine Routine innerhalb dieser Routine selbst aufrufen, solange bis du beim Ziel angekommen bist (also bei der 1). Was macht diese Routine demnach? Richtig! Sie zieht von der übergebenen Zahl n eins ab.
Ne da steht auch nichts mit vorgegegeben Rückgabetypen. Das hat sich durch ein User von vornhin etwas eingeschlichen ^^
Ja es lässt sich starten aber geht mehr oder weniger praktisch ins endlose Minusbereich ^^
Habe den Rückgabetyp auch rausgenommen jetzt und bin halt bei:
Java:
publicstaticvoidmain(String[] args){// TODO Auto-generated method stubprintZahl(10);}publicstaticvoidprintZahl(int n){if(n <=1){System.out.println("noch"+ n );}printZahl(n-1);}}
Ich nehme mal an, dass mein Fehler in n <= 1 liegt, oder? Weil er geht ja in den Minusbereich bis irgendwann Fehlermeldungen kommen in der Konsole
Ich glaube, dass ich es jetzt habe.
Java:
staticvoidprintZahl(int n){if(n >0){System.out.println("noch "+ n +" Durchlaeufe");printZahl(n -1);}}}
Damit komme ich auf meine Durchläufe von 10 bis zur 1.
Ja, die Abfrage ist noch nicht richtig. Aber auch mit der richtigen Abfrage würde es noch nicht funktionieren, denn du rufst printZahl(n-1) ja unabhängig von irgendwelchen Bedingungen auf. Das läuft also endlos weiter (bzw. so lange, bis der Stack überläuft).
Ja, dann bin ich froh, dass ich es jetzt habe. Dann bedanke ich mich bei dir Meniskusschaden und bei allen anderen, die mir geholfen haben. Sehr nett von euch Leuten zu helfen, die das verzweifelt probieren zu lernen