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; }
Prinzipien der Ganzzahlumkehr
Um die Logik hinter diesem Algorithmus zu verstehen, berücksichtigen Sie die folgenden Konzepte:
Pseudocode
Der Umkehralgorithmus folgt diesen Schritten:
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; }
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>
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!