Hallo zusammen,
ich muss ein kleines Programm erstellen welches folgende Anforderung erfüllt:
Für den Aufruf java Palindromzahl 123 wäre die Ausgabe wie folgt:
321 | Gespiegelte Palindromzahl
444 | spiegel Addition
444 | Nächste Palindromzahl
Dabei habe ich folgenden Programm Code mit Methoden:
Ich bin noch nicht fertig aber das Problem besteht darin das ich wenn die Methode über System.out.println(spiegeln(n)) aufrufe leider nur die letzte Ziffer der Variabel "tmp" als Ergebnis bekommen:
123 | Eingabe
1 | Gespiegelte Palindromzahl
false | palindromTest
1 | spiegelAddieren
Könnte mir jemand erklären warum das so ist und wie ich im Ansatz das Problem lösen kann.
Vielen Dank für eure Hilfe
Gruß Flo
ich muss ein kleines Programm erstellen welches folgende Anforderung erfüllt:
Für den Aufruf java Palindromzahl 123 wäre die Ausgabe wie folgt:
321 | Gespiegelte Palindromzahl
444 | spiegel Addition
444 | Nächste Palindromzahl
Dabei habe ich folgenden Programm Code mit Methoden:
Java:
import java.util.Scanner;
public class Palindromzahl {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n;
n = sc.nextInt();
sc.close();
System.out.println(spiegeln(n));
System.out.println(palindromTest(n));
System.out.println(spiegelAddieren(n));
}
public static int spiegeln(int zahl) {
int tmp;
tmp = 0;
while(zahl!=0)
{
tmp = zahl % 10;
zahl /= 10;
}
return tmp;
}
public static boolean palindromTest(int zahl) {
zahl = Math.abs(zahl);
if (zahl % 10 == 0)
{
return zahl == 0;
}
else
{
int k = zahl;
int r = 0;
while (k > 0)
{
r = 10 * r + k % 10;
k /= 10;
}
return zahl == r;
}
}
public static int spiegelAddieren(int zahl) {
int tmp;
tmp = 0;
while(zahl!=0)
{
tmp = zahl % 10;
zahl /= 10;
}
return tmp+zahl;
}
}
123 | Eingabe
1 | Gespiegelte Palindromzahl
false | palindromTest
1 | spiegelAddieren
Könnte mir jemand erklären warum das so ist und wie ich im Ansatz das Problem lösen kann.
Vielen Dank für eure Hilfe
Gruß Flo