Jede zweite Ziffer entfernen (rekursiv)

leroy7

Mitglied
Hallo Leute,
ich bräuchte eure Hilfe, da ich einfach nicht auf die Lösung komme. Und zwar gab es bei uns eine Klausuraufgabe in der wir eine Methode schreiben sollten, in der jede zweite Ziffer einer Zahl z.B. 13567 entfernt werden soll. In der Ausgabe sollte nun --> 157 erscheinen. Wir sollten dies ohne Schleifen und ohne if-Anweisungen durchführen.
Mein Ansatz war folgender:

12383
Das würde für die Zahl die in der Klausur gefragt war funktionieren. Aber wenn jetzt die Zahl 135678 gegeben wäre, dann hätte ich da ein Problem, da nun 368 in der Ausgabe erscheint.
Danke für eure Hilfe :)
 

leroy7

Mitglied
Oh da gab es schon etwas zu. Trotzdem danke!
Wenn ich nun mit einer weiteren Methode arbeite komme ich nun zum folgenden Problem:
12384
Wenn ich die 13567 mit jedeErsteZiffer aufrufe komme ich zum richtigen Ergebnis, was mit jedeZweiteZiffer nicht funktioniert.
Jedoch wenn ich 135678 mit jedeErsteZiffer aufrufe bekomme ich ein falsches Ergebnis und zwar 1368, was diesmal mit jedeZweiteZiffer aber funtkioniert.
 

httpdigest

Top Contributor
Da ist tatsächlich noch ein Fehler drin, den man aber finden und beheben kann.
Erstmal aber die Frage: Ist mit "jede zweite Ziffer" gemeint: Jede zweite Ziffer in Richtung der höherwertigen zu den niedrigwertigen Ziffern, oder in Richtung der niedrigwertigen zu den höherwertigen Ziffern.
Bei ersterem wäre bei 123456 das korrekt Ergebnis: 135, bei letzterem wäre das Ergebnis hier 246
 

httpdigest

Top Contributor
Naja, also ohne jegliche Verzweigungs-Logik geht es nicht. :)

EDIT: @leroy7 Wenn die Leserichtung von rechts nach links (also von niedrigwertige Ziffer zu höherwertige Ziffer) sein soll, ist deine erste Lösung im ersten Post schon optimal und man braucht tatsächlich keine zweite Methode!
Wenn von links nach rechts gemeint ist, wird es um einiges schwieriger, da man dann zuerst die Zahl umdrehen muss.
 

mihe7

Top Contributor
Java:
public class Test {
    public static int second(int zahl, int step) {
        return zahl < 10 ? zahl : (
            step % 2 == 0 ? 10 * second(zahl/10, step-1) + zahl % 10
                          : second(zahl/10, step-1)
        );
    }

    public static int second(int zahl) {
        return second(zahl, (int)(Math.log(zahl)/Math.log(10)));
    }

    public static void main(String[] args) {
        System.out.println(second(135678));
        System.out.println(second(35678));
        System.out.println(second(5678));
        System.out.println(second(678));
        System.out.println(second(78));
        System.out.println(second(8));
    }
}
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
berserkerdq2 Spiel hängt sich immer in der 4 Runde auf, obwohl ich jede Runde das gleiche mache Java Basics - Anfänger-Themen 1
D Ampel Programmieren die jede 10 sekunden ihre farbe wechselt Java Basics - Anfänger-Themen 6
B Methode für jede beliebe Entity erstellen Java Basics - Anfänger-Themen 7
A Jede x-te Zeile, lösche 10 Zeilen Java Basics - Anfänger-Themen 9
S Jede Ziffer einer Zahl auslesen, damit rechnen und beim Ergebnis wiederholen ? Java Basics - Anfänger-Themen 20
M Primzahlen, nur jede 2te ausgeben Java Basics - Anfänger-Themen 11
V Ein Wort einlesen und dann jede Buchstabe ausgeben Java Basics - Anfänger-Themen 10
M Threads Jede Klasse einem Thread zuweisen Java Basics - Anfänger-Themen 7
K Mit Scanner aus einer txt Datei lesen und jede Person mit name, vorname, geburtsdatum speichern Java Basics - Anfänger-Themen 5
U Farbe meines Würfels jede sekunde ändern! Java Basics - Anfänger-Themen 5
W Erste Schritte Timer soll jede Sekunde Label aktualisieren Java Basics - Anfänger-Themen 5
R JLabel imageicon jede Sekunde wechseln Java Basics - Anfänger-Themen 3
S Jede Reihenfolge einer zufällig langen Liste ausprobieren Java Basics - Anfänger-Themen 3
J Eine int Variable jede Sekunde um 1 hocnzählen Java Basics - Anfänger-Themen 3
T Zufalls jedoch jede nur einmal Java Basics - Anfänger-Themen 10
K Swing Fenster jede sec.neuzeichnen Java Basics - Anfänger-Themen 14
A InputStream gibt nur jede 2te Zeile aus Java Basics - Anfänger-Themen 7
J Ein Wort einlesen und dann jede Buchstabe ausgeben Java Basics - Anfänger-Themen 25
J Jede Zeile der Textdatei in ListUI eintragen Java Basics - Anfänger-Themen 2
N jede Zwanzigste... ? Java Basics - Anfänger-Themen 12
E Jede Objektart in Mutterelement erlauben? Java Basics - Anfänger-Themen 3
E Klassendesign: Array für jede Objektart?! Java Basics - Anfänger-Themen 6
Developer_X jede Zeile einer Datei mit einem String verketten Java Basics - Anfänger-Themen 16
S PrepareStatement, jede neue Zeile INT-Wert Java Basics - Anfänger-Themen 5
W Die Methode print() wird 2 mal für jede Seite aufgerufen Java Basics - Anfänger-Themen 9
G jede 2te zeile in vector leer einfügen, wie? Java Basics - Anfänger-Themen 4
N Aus Textdatei jede Zeile in einen String lesen Java Basics - Anfänger-Themen 22
F 2DArray jede Spalte Addieren Java Basics - Anfänger-Themen 8
G Datum und Text in jede beliebige Anwendung einfügen Java Basics - Anfänger-Themen 3
U Jede Sekunde Java Basics - Anfänger-Themen 6
M Braucht jede Klasse eine Schnittstelle ? Java Basics - Anfänger-Themen 4
M Jede Variable als private, protected etc. deklarieren? Java Basics - Anfänger-Themen 7
A Jedes zweite Element eines Arrays entfernen Java Basics - Anfänger-Themen 30
L Anpassung der Spaltenbreite auch auf eine zweite Tabelle anwenden Java Basics - Anfänger-Themen 8
K Zweite Ausgabe von vererbten Klassen Java Basics - Anfänger-Themen 3
M Nach einer erstmaligen Eingabe, eine zweite Eingabe nur noch gegen bestätigung möglich Java Basics - Anfänger-Themen 2
N ArrayList: Das zweite Element wird zur Liste nicht eingefügt nach dem zweiten request. Java Basics - Anfänger-Themen 3
A Akzeptiert das zweite replaceAll nicht Java Basics - Anfänger-Themen 20
H Wie kann ich jedes zweite Array Wert ausgeben lassen?? Java Basics - Anfänger-Themen 6
A Mit javac zweite Datei compilieren ohne Erste erneut zu compilieren? Java Basics - Anfänger-Themen 7
A OOP Arraybefüllung mit for-Schleifen Problem: Umsprung in die zweite Zeile Java Basics - Anfänger-Themen 11
H RandomAccesFile zweite Zeile schreiben Java Basics - Anfänger-Themen 4
R Image laden die Zweite Java Basics - Anfänger-Themen 4
R Erste und zweite Stelle einer Eingabe auslesen Java Basics - Anfänger-Themen 2
F Mehrdimensionales Array zweite Diemnsion später Konstruieren? Wie Java Basics - Anfänger-Themen 2
U zweite Frage: return, wichtig Java Basics - Anfänger-Themen 8
S Nachricht von Console auf Screen wiedergeben die zweite:-) Java Basics - Anfänger-Themen 7
F Zweite Graphics-Methode wird nicht ausgeführt Java Basics - Anfänger-Themen 4
U Sonderzeichen die zweite Java Basics - Anfänger-Themen 16
S Zahlenraten die zweite Java Basics - Anfänger-Themen 3
K Eclipse - zweite Konsole? Java Basics - Anfänger-Themen 2
ven000m Rauten "Stern" zeichnen, hälfte habe ich zweite? Java Basics - Anfänger-Themen 2
K Neuronales Netz in Java ... die zweite Java Basics - Anfänger-Themen 3
K Wörter zählen auf Internetseiten... die zweite Java Basics - Anfänger-Themen 4
S Klappe die Zweite für Heute Java Basics - Anfänger-Themen 2
A Fehler beim Lesen von Objekten aus Datei (die zweite) Java Basics - Anfänger-Themen 2
rosima26 Java nach letzter Ziffer sortieren Java Basics - Anfänger-Themen 19
A String split funktioniert nicht, wenn mehr als 1 Ziffer vor dem Zeichen steht nach dem er trennen soll? Java Basics - Anfänger-Themen 4
L Zufälligen Zahlencode, ohne mehrfacher Verwendung einer Ziffer Java Basics - Anfänger-Themen 15
P Ziffer in der Mitte ausgeben Java Basics - Anfänger-Themen 12
A Überprüfen, ober eine Zahl Ziffer enthält Java Basics - Anfänger-Themen 12
T Schauen ob eine Ziffer in einem String-Array häufiger vorkommt Java Basics - Anfänger-Themen 8
C Erste Ziffer einer Zahl Java Basics - Anfänger-Themen 46
K alle Vorkommen einer bestimmten Ziffer in einer Zahl zählen Java Basics - Anfänger-Themen 2
R Position einer Ziffer in einer Zahlenkette Java Basics - Anfänger-Themen 5
I kleinste Ziffer einer Zahl ausgeben Java Basics - Anfänger-Themen 3
A Kleinste Ziffer im Array suchen um Sortierung zu erzeugen Java Basics - Anfänger-Themen 2
M Ziffer einträge vergrößern Java Basics - Anfänger-Themen 16
Z Methoden Methode, die Ziffer aus Hexadezimal in Zehnerdezimal umrechnet Java Basics - Anfänger-Themen 5
H Anzahl Ziffer in Zahl bestimmen Java Basics - Anfänger-Themen 3
D Ziffer in Zahl Rekursiv Java Basics - Anfänger-Themen 4
B Bestimmte Ziffer Java Basics - Anfänger-Themen 27
T Methoden Maximale Ziffer von int-Wert Java Basics - Anfänger-Themen 8
P Kann Ziffer die am Ende einer Zeile steht (.txt) nicht in int übersetzen Java Basics - Anfänger-Themen 11
J Variablen Ziffer für Ziffer einzeln speichern Java Basics - Anfänger-Themen 5
S Ziffer einer Int größer als x? Java Basics - Anfänger-Themen 7
M ziffer in zahl erkennen mit boolean Java Basics - Anfänger-Themen 12
U Erste Ziffer abspalten Java Basics - Anfänger-Themen 3
M Array, Int-wert Ziffer je Position zuweisen Java Basics - Anfänger-Themen 3
G charAT(i) eine Ziffer ? Java Basics - Anfänger-Themen 2
T Einzelne Ziffer zusammenfügen (ohne Strings oder Arrays) Java Basics - Anfänger-Themen 2
G Feststellen, ob erstes Zeichen eines Strings eine Ziffer ist Java Basics - Anfänger-Themen 11
B Position einer Ziffer im String bestimmen Java Basics - Anfänger-Themen 4
V Erste Ziffer aus einer dreistelligen "Zahl" heraus Java Basics - Anfänger-Themen 5
E Ziffer in char-Array Java Basics - Anfänger-Themen 2
D Unterschied zwischen Ziffer und Zahl Java Basics - Anfänger-Themen 9

Ähnliche Java Themen

Neue Themen


Oben