Jede Ziffer einer Zahl auslesen, damit rechnen und beim Ergebnis wiederholen ?

Soltan

Aktives Mitglied
Hallo !
Ich habe folgende Aufgabe: Ich soll von einer beliebigen Zahl die einzelnen Ziffern jeweils quadrieren, danach addieren und anschliessend den Vorgang bei dem Ergebnis solange wiederholen bis entweder 1 oder 4 als Endergebnis rauskommt.

Beispiel: 97 -> 9^2 + 72 = 130 -> 1^2 + 3^2 + 0^2 = 10 -> 1^2 + 0^2 = 1

Kann mir irgendwer ne kleine Starthilfe geben ?
Mein Ansatz bis jetzt ist: ich wandle die Zahl mal in nen String um und komme dann mit irgendner methode dann mal auf die Anzahl der Stellen. Dann müsste ich quasi jede dieser Stellen wieder in Zahlen umwandeln und die Rechnschritte ausführen. Am Ende wird nur überprüft ob das ergebnis 1 oder 4 ist. Aber die Umsetzung ist mir noch vollkommen suspekt..... Das ganze soll innerhalb einer Klasse gelöst werden.
 

Robat

Top Contributor
Anderer Ansatz wäre die letzte Ziffer mit dem Modulo-Operator zu holen (97 % 10), das Quadrat zu berechnen, aufsummieren und dann die letzte Ziffer mit Division durch 10 abzuschneiden.
Das machst du solange wie die Zahl > 0 ist.
Den Vorgang kannst du ja dann mit der neu errechneten Zahl wiederholen.
 

Soltan

Aktives Mitglied
Naja ich frage mich wie ich das dann de facto umsetze dass automatisch mit den einzelnen Ziffern gerechnet wird. Sind ja nicht in Variable deklariert oder so.... wie soll ich dann Rechenschritte ausführen damit. Und dadurch dass die Zahlen immer unterschiedlich viele Ziffern haben ist die Rechnung quasi auch immer unterschiedlich....
 

JStein52

Top Contributor
Bei Robat's Vorschlag kriegst du mit diesem Codeschnipsel nacheinander alle Ziffern (von hinten her)
Code:
int zahl = 12345;
int ziffer = zahl;
while (zahl > 9) {
   ziffer = zahl%10;  // das ergibt die letzte Ziffer
   // jetzt kannst du mit ziffer was rechnen
   zahl=zahl/10;  // das schneidet die letzte Ziffer ab
}
 

Soltan

Aktives Mitglied
Hm damit kann ich mir zwar die letzte Zahl ausgeben lassen... allerdings wird ja nach jeder Schleife die zahl quasi um ne Stelle kleiner und int ziffer neu deklariert. Die ziffer vom vorigen Durchlauf wird nirgendwo gespeichert... ich muss ja sämtliche Stellen auch speichern ! in eigenen variablen um damit dann den gesamten Rechenschritt durchführen zu können. In dem Beispel kann ich zwar immer die letzte Ziffer quasi " rausschneiden " aber wie soll ich alle speichern und dann am Ende noch ne Rechnung damit machen. Das Ergebnis dann speichern und wiederholen.... :(
 

Soltan

Aktives Mitglied
Ich müsste quasi jede Ziffer bei dem Durchlauf immer automatisch in einer automatisch erstellten Variable speichern. ( Dazu muss das Programm automatisch den Variablen datatypen+namen zuweisen ?!? ) dann je, nachdem wieviele Variablen durch das neue Ergebnis erzeugt werden, additionen mit ebendiesen durchführen und dann nachdem das Ergebnis da ist beim nächsten Durchlauf jede Variable wieder neu einstellen.... irgendwie bin ich ziemlich verwirrt ^^
 

Soltan

Aktives Mitglied
Ne Frage am Rande.... gibt es nicht irgendeine long ider int methode mit der ich bestimmte ziffern im index eines tokens abrufen kann ? Oder mit grundsätzliche anzeigen lassen kann wieviele Stellen die Zahl hat ?
 

Meniskusschaden

Top Contributor
Die ziffer vom vorigen Durchlauf wird nirgendwo gespeichert... ich muss ja sämtliche Stellen auch speichern
Eigentlich nicht. Du benötigst doch nur eine Variable für die Eingabe und eine weitere, in der du die Quadrate summierst. Wenn du alle Ziffern verarbeitet hast, kannst du das ganze mit dem Wert der Summenvariablen als neue Eingabe noch einmal machen.
gibt es nicht irgendeine long ider int methode mit der ich bestimmte ziffern im index eines tokens abrufen kann ? Oder mit grundsätzliche anzeigen lassen kann wieviele Stellen die Zahl hat ?
Dafür könntest du dir eigene Methoden schreiben, die das entweder in einer Schleife ermitteln oder ausrechnen. Eine dreistellige Zahl liegt beispielsweise zwischen 10^2 und 10^3, eine vierstellige zwischen 10^3 und 10^4. Auf die nötigen Formeln kann man dann relativ einfach kommen. Für diese Aufgabe braucht man das allerdings nicht (wäre aber vielleicht eine gute Übung).
 

JStein52

Top Contributor
Du könntest es ungefähr so machen:
Code:
    public static int quadratQuersumme(int zahl) {
        int quadratQuersumme = zahl;

        while (quadratQuersumme != 1 && quadratQuersumme != 4) {
            int ziffer = quadratQuersumme;
            int neueZahl = quadratQuersumme;
            int summe = 0;
            while (neueZahl > 0) {
                ziffer = neueZahl%10;  // das ergibt die letzte Ziffer
                summe  = summe + (ziffer*ziffer);
                neueZahl=neueZahl/10;  // das schneidet die letzte Ziffer ab
            }
            quadratQuersumme = summe;
        }
        return quadratQuersumme;
    }
 

Soltan

Aktives Mitglied
OK also ich bin jetzt schon nahe dran, aber die letzte Erkenntnis treibt mich nahezu in den Wahnsinn.
Ich habe das jetzt so geschrieben:
Code:
public class Spielwiese {
    public static void main(String[] args) {

        long Quotient = 0L;
        long Summe = 0L;
        long Ausgangszahl = 58L;
        long Ziffernstelle = Ausgangszahl;

            while (Ausgangszahl > 0 ) {
                Ziffernstelle = Ausgangszahl % 10; // das ergibt die letzte Ziffer
                Quotient = Ziffernstelle * Ziffernstelle;
                Summe += Quotient;
                Ausgangszahl = Ausgangszahl / 10;  // das schneidet die letzte Ziffer ab
                if (Ausgangszahl == 0) {
                    Ausgangszahl = Summe;
                    Summe = 0L;
                }
            }
    }
}

Die Rechnung funktioniert jetzt..... Allerdings bin ich offensichltich zu dumm um eine Bedingung zu finden bei der er aus der Schleife am Ende der Rechnung und NUR am Ende der Rechnung aussteigt.(Ist ja ansonsten ne Endlosschleife) Ich kann nicht als Bedingung setzen " wenn Summe 1 oder 4 ist dann steig aus " da bei manchen Zahlen wo er eigentlich weiterrechnen sollte ( überall quasi wo der Quotient der ersten Ziffer die er durchrechnet eben 1 oder 4 ist wie zB 111 oder 112) dann abbricht..... hab schon nen Knoten im Kopf. :/
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Jede zweite Ziffer entfernen (rekursiv) Java Basics - Anfänger-Themen 6
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
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
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
M Ausgabe einer ArrayList ensteht nur als Hashcode, nicht als Objekt Java Basics - Anfänger-Themen 16
D 2 ArrayListen gleich sortieren bzw. eine Liste anhand einer anderen Sortieren Java Basics - Anfänger-Themen 6
ixChronos Letzten 4 Ziffern einer großen Zahl ausgeben Java Basics - Anfänger-Themen 3
P Objekt einer Methode eines anderen Objektes übergeben Java Basics - Anfänger-Themen 5
L Variablenwerte aus einer Methode übergeben Java Basics - Anfänger-Themen 2
E Arrays in einer ArrayList miteinander vergleichen Java Basics - Anfänger-Themen 12
Simon16 Java ArrayListe von einer Klasse sortieren Java Basics - Anfänger-Themen 2
Shadowrunner Variablen Gibt es eine Möglichkeit die Ziffern/Stellen einer Zahl fest zu legen? Java Basics - Anfänger-Themen 3
D remove Object von einer Liste von Obejcts Java Basics - Anfänger-Themen 3
FunkyPhil94 Wert in einer Lambda Funktion erhöhen Java Basics - Anfänger-Themen 3
T Aufruf der Methode einer Oberklasse, wenn sie in der Unterklasse überschrieben ist. Polymorphie. Java Basics - Anfänger-Themen 2
B Kommunikation mit Seriellen Schnittstellen + Integration einer lib Java Basics - Anfänger-Themen 1
A Daten aus einer HashMap aus einer DB speichern und mit neuen Werten vergleichen Java Basics - Anfänger-Themen 8
P Welches SDK für das erstellen einer ausführbaren Datei? Java Basics - Anfänger-Themen 4
D Länge einer Liste aufrufen. Java Basics - Anfänger-Themen 19
J Klassen Instanzen einer Klasse in einer anderen unabhängigen Klasse nutzen Java Basics - Anfänger-Themen 4
B Alle Strings bis zu einer Maimallänge aufzählen, die Bedingung erfüllen Java Basics - Anfänger-Themen 13
marcelnedza Finde meinen Fehler in einer Methode nicht, Java Karol Java Basics - Anfänger-Themen 15
Soranix Erste Schritte Struktur als Anfänger // Von einer Klasse auf ein Objekt einer anderen Klasse zugreifen. Java Basics - Anfänger-Themen 6
MoxMorris Wie macht man String[] = String[] aus einer anderer Methode? Java Basics - Anfänger-Themen 18
T Fibonacci mit einer Hilfsmethode berechnen Java Basics - Anfänger-Themen 10
S Hilfe zu einer Aufgabe Java Basics - Anfänger-Themen 5
M Radius von einer ellipse bestimmen Java Basics - Anfänger-Themen 7
Say Fehlenden Code finden in einer while-Schleife? Java Basics - Anfänger-Themen 11
M Zufallszahl generieren mit einer linken und rechten Grenze Java Basics - Anfänger-Themen 3
N Was Passiert mit dem Namen einer Variable, wenn man diese einer Liste Hinzufügt Java Basics - Anfänger-Themen 16
_user_q Wie eine Methode/Funktion aus einer Klasse mit Constructor aufrufen? Java Basics - Anfänger-Themen 20
W String einer Textdatei in einzelne Stringobjekte pro Zeile aufteilen Java Basics - Anfänger-Themen 14
W Objekte einer ArrayList in txt-datei schreiben mit Paths? Java Basics - Anfänger-Themen 2
S Best Practice Fragen zu Projektstruktur einer Datenbank-Abfrage-App (MVC) Java Basics - Anfänger-Themen 13
T Variable von Objekten in einer Methode überprüfen Java Basics - Anfänger-Themen 26
nelsonmandela Problem bei Ausgabe einer Switch - Case Funktion Java Basics - Anfänger-Themen 5
S Textausgabe in einer For-Schleife Java Basics - Anfänger-Themen 12
M Spezifischen Wert einer Zeile aus .txt Datei entnehmen Java Basics - Anfänger-Themen 15
B Popups mit Klicksabfangen zumAusfüllen einer .ods Datei Java Basics - Anfänger-Themen 0
M RandomAccessFile int und String gleichzeitig in einer Datei Java Basics - Anfänger-Themen 49
E Suchfunktion in einer Liste Java Basics - Anfänger-Themen 39
T ungeordnete Werte-Paare in einer Liste Java Basics - Anfänger-Themen 7

Ähnliche Java Themen

Neue Themen


Oben