Java Palindrom-Zahl-Prüfer: Algorithmen mit While- und For-Schleifen
Was ist eine Palindrom-Zahl?
121, 393 und 48084. Sie weisen Spiegel-Symmetrie auf und werden oft in algorithmischen Rätseln verwendet.
In Java sind Palindrom-Prüfungen gängige Aufgaben in Interviews und Coding-Challenges. Der Algorithmus ist einfach, kann aber auf verschiedene Weisen implementiert werden.
Algorithmus-Übersicht
- Eingabe-Ganzzahl einlesen.
- Ihre Ziffern umkehren und das Ergebnis speichern.
- Die umgekehrte Zahl mit der ursprünglichen vergleichen.
- Stimmen sie überein, ist die Zahl ein Palindrom; andernfalls nicht.
Prüfung mit While-Schleife
package com.guru99;
public class PalindromZahl {
public static void main(String[] args) {
int eingabeZahl = 171; // zu prüfende Zahl
int umgekehrt = 0;
int temp = eingabeZahl;
while (temp > 0) {
int letzteZiffer = temp % 10;
umgekehrt = (umgekehrt * 10) + letzteZiffer;
temp /= 10;
}
System.out.println("Umgekehrte Zahl: " + umgekehrt);
if (umgekehrt == eingabeZahl) {
System.out.println("Zahl ist ein Palindrom.");
} else {
System.out.println("Zahl ist kein Palindrom.");
}
}
}
Ausgabe
Umgekehrte Zahl: 171
Zahl ist ein Palindrom.
Prüfung mit For-Schleife
Derselbe Logik lässt sich mit einer for-Schleife ausdrücken, was in Kontexten vorzuziehen sein kann, wo der Schleifenzähler natürlicher als dekrementierender Index ausgedrückt wird.
package com.guru99;
public class PalindromZahl {
public static void main(String[] args) {
int eingabeZahl = 185; // zu prüfende Zahl
int umgekehrt = 0;
int temp = eingabeZahl;
for (; temp > 0; temp /= 10) {
int letzteZiffer = temp % 10;
umgekehrt = (umgekehrt * 10) + letzteZiffer;
}
System.out.println("Umgekehrte Zahl: " + umgekehrt);
if (umgekehrt == eingabeZahl) {
System.out.println("Zahl ist ein Palindrom.");
} else {
System.out.println("Zahl ist kein Palindrom.");
}
}
}
Ausgabe
Umgekehrte Zahl: 581
Zahl ist kein Palindrom.
Überlegungen und Best Practices
- Negative Zahlen: Per Definition sind negative Zahlen keine Palindrome wegen des führenden Minuszeichens. Geben Sie sofort
falsezurück, wenn die Eingabe negativ ist. - Überlauf: Das Umkehren einer 32-Bit-Ganzzahl kann überlaufen. Für Produktionscode verwenden Sie
longoder prüfen Sie vor jeder Multiplikation auf Überlauf. - String-Ansatz: Die Zahl in einen String konvertieren und mit dessen Umkehrung vergleichen ist oft simpler und fehlerresistenter, besonders bei sehr großen Zahlen.
Für detailliertere Erklärungen siehe GeeksforGeeks und Stack Overflow Diskussion zum Umkehren von Zahlen.
Java
- C# While und Do-While Schleifen meistern: Syntax, Beispiele und Best Practices
- C# For-Schleifen meistern: Syntax, Ablauf und praktische Beispiele
- Java Hello World: Ihr erstes Programm
- Java Enhanced For-Schleife meistern: Syntax, Beispiele und Best Practices
- Java-Programm zur Prüfung, ob eine Zahl prim ist
- Java-Programm: Primzahlen von 1 bis 100 auflisten – Schritt-für-Schritt-Anleitung
- Fibonacci-Folge in Java generieren: For-, While- und Rekursions-Beispiele
- Java-Programm zur Identifikation von Armstrong-Zahlen mit For-Schleife
- Java Palindrom-Zahl-Prüfer: Algorithmen mit While- und For-Schleifen
- Python Schleifen meistern: For, While, Break, Continue und Enumerate erklärt