Heim > Java > javaLernprogramm > Wie kehrt der bereitgestellte Java-Code eine Ganzzahl um, ohne Arrays oder Strings zu verwenden?

Wie kehrt der bereitgestellte Java-Code eine Ganzzahl um, ohne Arrays oder Strings zu verwenden?

Patricia Arquette
Freigeben: 2024-11-04 21:41:02
Original
931 Leute haben es durchsucht

How does the provided Java code reverse an integer without using arrays or strings?

Umkehren einer Ganzzahl ohne Arrays in Java

Ihre Anfrage betrifft das Umkehren einer Ganzzahl ohne Rückgriff auf Arrays oder Strings. Sie haben Schwierigkeiten, die Logik hinter dem folgenden Codeausschnitt zu verstehen:

while (input != 0) {
    reversedNum = reversedNum * 10 + input % 10;
    input = input / 10;   
}
Nach dem Login kopieren

Prinzipien der Ganzzahlumkehr

Um die Logik hinter diesem Algorithmus zu verstehen, berücksichtigen Sie die folgenden Konzepte:

  • Modul (%): Wenn die Eingabe durch 10 geteilt wird, ist das Ergebnis die letzte Ziffer. (z. B. 1234 % 10 entspricht 4.)
  • Multiplikation mit 10: Das Multiplizieren einer Ganzzahl mit 10 „verschiebt sie nach links“ und fügt rechts eine Null hinzu. (z. B. 5 * 10 = 50.)
  • Division durch 10: Diese Operation entfernt die Ziffer ganz rechts. (z. B. 75 / 10 = 7.)

Pseudocode

Der Umkehralgorithmus folgt diesen Schritten:

  1. Extrahieren Sie den Ziffer ganz rechts der Eingabe.
  2. Fügen Sie die extrahierte Ziffer an die Variable „reversedNum“ an.
  3. Multiplizieren Sie „reversedNum“ mit 10, um die Ziffern nach links zu verschieben.
  4. Dividieren Sie die Eingabe durch 10 bis Entfernen Sie die untersuchte Ziffer.
  5. Wiederholen Sie die Schritte 1-4, bis die Eingabe Null erreicht.

Arbeitscode

Hier ist eine aktualisierte Version von Der bereitgestellte Code, der große eingegebene Ganzzahlen berücksichtigt und einen möglichen Überlauf behandelt:

<code class="java">public int reverseInt(int input) {
    long reversedNum = 0;
    long input_long = input;

    while (input_long != 0) {
        reversedNum = reversedNum * 10 + input_long % 10;
        input_long = input_long / 10;
    }

    if (reversedNum > Integer.MAX_VALUE || reversedNum < Integer.MIN_VALUE) {
        throw new IllegalArgumentException();
    }
    return (int) reversedNum;
}
Nach dem Login kopieren

Nur ​​ungerade Zahlen umkehren

Um nur ungerade Ziffern in einer Ganzzahl umzukehren, können Sie implementieren den gleichen Algorithmus, aber fügen Sie eine bedingte Anweisung hinzu, um gerade Ziffern zu überspringen. Zum Beispiel:

public int reverseOddDigits(int input) {
    long reversedNum = 0;
    long input_long = input;

    while (input_long != 0) {
        if (input_long % 2 == 1) {
            reversedNum = reversedNum * 10 + input_long % 10;
        }
        input_long = input_long / 10;
    }

    if (reversedNum > Integer.MAX_VALUE || reversedNum < Integer.MIN_VALUE) {
        throw new IllegalArgumentException();
    }
    return (int) reversedNum;
}</code>
Nach dem Login kopieren

Mit diesem geänderten Code können Sie jetzt die ungeraden Ziffern in Ihrer eingegebenen Ganzzahl selektiv umkehren.

Das obige ist der detaillierte Inhalt vonWie kehrt der bereitgestellte Java-Code eine Ganzzahl um, ohne Arrays oder Strings zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage