Rekursion Aufgabe

parrot

Aktives Mitglied
Schreiben sie eine Methode gibGrößtesEndstück(int n), die das größte
absteigende Endstück ausgibt (keine if Anweisungen und Schleifen!).
z.B. gibGrößtesEndstück(3246765) : 765
gibGrößtesEndstück(324665) : 65
gibGrößtesEndstück(3246265) : 65
gibGrößtesEndstück(32467) : 7
gibGrößtesEndstück(8) : 8
gibGrößtesEndstück(0) : 0
 

parrot

Aktives Mitglied
Hallo, ich habe einen Anfang versucht:

Code:
 return (n >= 10)
        ? n
        : (n % 10) < (n / 10 % 10)
            ? 10 * gibGrößtesEndstück(n % 10) + (n / 10 % 10)
                    :
 

parrot

Aktives Mitglied
Hallo, ich habe einen Anfang versucht:

Code:
 return (n >= 10)
        ? n
        : (n % 10) < (n / 10 % 10)
            ? 10 * gibGrößtesEndstück(n % 10) + (n / 10 % 10)
                    :
 
K

kneitzel

Gast
Also was zeichnet denn das größte Endstück aus? Welche Eigenschaft muss das genau haben?

Und die Bedingung, kein if zu verwenden ist etwas seltsam. Der Conditional Operator ist ja streng genommen nichts anderes. Aber ok, das wird ja so vorgegeben worden sein....

Schauen wir uns Deinen Code an: Da scheint die Bedingung falsch zu sein, denn wenn n >= 10 ist, dann gibst du n zurück. Ist es kleiner als 10, dann machst Du Berechnungen, die keinen Sinn ergeben. n % 10 macht keinen Sinn bei n < 10. Also vermutlich hast Du einfach die Reihenfolge vertauscht.

Und dann fehlt da natürlich noch etwas. Du hast da ja noch einen Conditional Operator: Und da fehlt, was gemacht werden soll, wenn die zweite Bedingung nicht wahr ist.

Und die Rückgabe, wenn die zweite Bedingung richtig ist, ist so nicht korrekt. Die letzte Ziffer ist kleiner als die vorletzte Ziffer, also hast Du als Rückgabe: die letzte Ziffer + 10*Rekursiver Aufruf von den Übrigen Ziffern.

Schreib doch einfach einmal auf:
- was ist die letzte Ziffer?
- was ist die vorletzte Ziffer?
- Was ist der Rest ohne die letzte Ziffer?

Also Code von Dir leicht verbessert und mit Anmerkungen:
Java:
 return (n < 10) // Bedingung umgedreht...
        ? n  // Das ist die Rückgabe bei n < 10
        : (n % 10) < (n / 10 % 10) // Zweiter Conditional Operator ...
            ? 10 * gibGrößtesEndstück(n % 10) + (n / 10 % 10) // Das sieht nicht korrekt aus.
                    : // Hier fehlt noch etwas, vermutlich 0?
 

parrot

Aktives Mitglied
Zahl = 3246765
Also das Ergebnis hier ist : 765
-Um das zu bekommen hat man die Zahl / 1000 gemacht.
-Ab hier 46<7 haben wir die Zahl ausgeschnitten : Hier ist eigentlich das Problem. Ich würde hier abzählen wie viel mals von 1 Ziffer kleiner als die letzte ist + 1. Also hier 32467>6>5 (2+1=3) und dann die Zahl durch 10^3 = 1000 teilen.
 
K

kneitzel

Gast
Du hast doch den Algorithmus schon fast fertig...

Du hast Dir doch irgend was gedacht mit zahl kleine 10. Was ist, wenn die Zahl kleiner 10 ist und was ist, wenn die Zahl nicht kleiner 10 ist?
Wenn die Zahl größer 10 ist: Was vergleichst Du und was gibst Du dann ggf. zurück?

Das könntest Du formulieren, denn dann hättest Du die Basis um den Code zu verbessern.
 
K

kneitzel

Gast
Soll erstmal die letzte Ziffer mit der vorletzten Ziffer verglichen werden. Dann durchlaufen bis man den negativen Fall gefunden hat.
Sei exakter. Was bedeutet durchlaufen? Du vergleicht die letzte mit der vorletzten Ziffer und machst mit dem Ergebnis nichts? Da musst doch kommen ‚wenn das dann das sonst das‘ ...
 

parrot

Aktives Mitglied
return (zahl < 10)
? zahl
: (zahl / 10 % 10) < (zahl % 10) || (zahl / 10 % 10) == (zahl % 10)
? zahl % 10
: 10 * gibGrößtesEndstück(zahl / 10) + (zahl % 10);
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
P Rekursion Aufrufbaum Allgemeine Java-Themen 7
N rekursion mehrfach eine Methode Öffnen Allgemeine Java-Themen 4
districon Rekursion und Dynamische Programmierung Allgemeine Java-Themen 2
Zeppi Rekursion StackOverflowError Allgemeine Java-Themen 4
J Rekursion Allgemeine Java-Themen 4
Zrebna Wie kann man endgültig aus einer Rekursion ausbrechen? Allgemeine Java-Themen 14
B Rekursion Allgemeine Java-Themen 11
X Wie mache ich hier eine Rekursion rein ? Allgemeine Java-Themen 7
J Rekursion Mergesort Allgemeine Java-Themen 10
R Rekursion Allgemeine Java-Themen 3
R Programm zur Rekursion Allgemeine Java-Themen 5
V Rekursion Allgemeine Java-Themen 2
J Denkfehler Rekursion Allgemeine Java-Themen 5
I Raute mit Rekursion "zeichnen" Allgemeine Java-Themen 7
B Rekursion Allgemeine Java-Themen 2
B Rekursion Allgemeine Java-Themen 22
B Java Sternchen ausgeben mittels Rekursion Allgemeine Java-Themen 3
Hacer Rekursion- sumOfAllNodes Allgemeine Java-Themen 5
L Rekursion Binärbaum Allgemeine Java-Themen 7
Androbin Interpreter-Fehler Probleme mit Rekursion - StackOverflowError Allgemeine Java-Themen 8
Y Rekursion Allgemeine Java-Themen 19
M Permutation ohne Wiederholung mit rekursion Allgemeine Java-Themen 4
J Rekursion oder Iteration - verkettete Listen Allgemeine Java-Themen 8
T Pascalsches Dreieck ohne array und rekursion Allgemeine Java-Themen 9
P Rekursion Allgemeine Java-Themen 9
R Threading und Rekursion führen zu “GC overhead limit exceeded” Allgemeine Java-Themen 4
W Rekursion-Probleme mit return Allgemeine Java-Themen 35
C Rekursion Fibonacci Allgemeine Java-Themen 31
T Rekursion mit While Schleife kombinieren? Allgemeine Java-Themen 4
eQuest Rekursion Dauer Allgemeine Java-Themen 6
Weiti Swingworker und Rekursion Allgemeine Java-Themen 8
L fragwürdige Rekursion Allgemeine Java-Themen 4
L Kleine Rekursion Allgemeine Java-Themen 12
M Rekursion!! Allgemeine Java-Themen 8
J Rekursion in Schleifenkonstrukt wandeln Allgemeine Java-Themen 21
R Rekursion Ablauflogik Allgemeine Java-Themen 19
M Rückwärts geführte Rekursion Allgemeine Java-Themen 3
Schandro StackOverflowError bei Rekursion verhindern Allgemeine Java-Themen 14
G Werte bei Rekursion viel höher als erwartet Allgemeine Java-Themen 3
G Rekursion - Denksport Allgemeine Java-Themen 6
S Rekursion und StackOverflow Allgemeine Java-Themen 11
P Stackoverflow in Rekursion. Bin ich schuld oder Java? Allgemeine Java-Themen 9
W kompliziertes Konstrukt von Schleifen/If/else. Rekursion? Allgemeine Java-Themen 22
S Rekursion Allgemeine Java-Themen 2
Linad Tiefe der Rekursion als Abbruchbedingung Allgemeine Java-Themen 6
Linad Zahlensysteme -> Rekursion Allgemeine Java-Themen 4
N Frage zu einer Rekursion Allgemeine Java-Themen 4
T Objekt Array Aufgabe mit Busdatenbank Allgemeine Java-Themen 2
O Test schreiben mit Äquivalenzklassen (Aufgabe Prüfung) Allgemeine Java-Themen 9
OnDemand Erstellen von Quartz Jobs pro Aufgabe oder zusammenfassen Allgemeine Java-Themen 7
M Bräuchte Hilfe bei der Aufgabe Allgemeine Java-Themen 1
parrot Array Aufgabe Allgemeine Java-Themen 3
S Aufgabe erwünscht Allgemeine Java-Themen 7
R Statistische Methoden (Mathematik) Aufgabe Allgemeine Java-Themen 9
M Polymorphie Aufgabe Allgemeine Java-Themen 15
H Stack mit bestimmter Aufgabe Allgemeine Java-Themen 62
E Java Aufgabe WaWi01 Allgemeine Java-Themen 7
D Methoden Java-Aufgabe Allgemeine Java-Themen 2
R Java-Code für folgene Aufgabe? Allgemeine Java-Themen 8
G Methoden BMI -Wert Aufgabe(Methoden) Allgemeine Java-Themen 4
G Erste Schritte Aufgabe - Geht das auch schneller ? Allgemeine Java-Themen 7
R Was los mit dieser Aufgabe? Arrays mit Schachbrettmustern? Allgemeine Java-Themen 10
vandread Kleine Generics Aufgabe aus einer Prüfung... wie ist das gemeint? Allgemeine Java-Themen 6
D Aufgabe: Schnittstelle und Proxy implementieren Allgemeine Java-Themen 2
D BlueJ - Aufgabe 12 namens Traktor Allgemeine Java-Themen 7
D OOP Mustererkennungs Aufgabe Allgemeine Java-Themen 9
pg1337 Firmen-aufgabe Allgemeine Java-Themen 10
B Konkrete Aufgabe Allgemeine Java-Themen 9
S Textverständnis einer Aufgabe Allgemeine Java-Themen 2
F Frage zu Aufgabe Allgemeine Java-Themen 5
P Java-Security-Aufgabe gesucht Allgemeine Java-Themen 2
M Brauche einen Tipp, bei einer Aufgabe ! Allgemeine Java-Themen 3
I Aufgabe: Aufwandsabschätzung Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben