Hi, wieder einmal habe ich Probleme mit einer rekursiven Funktion. Meine Funktion funktioniert nur bei zweistelligen Zahlen, alles was darüber hinaus geht, wird bei mir fehlerhaft. Die Aufgabe lautet:
Aufgabe 6:
Folgendes Programm berechnet iterativ die Spiegelzahl einer eingegebenen Zahl:
Formen Sie das Programm um in ein gleichwertiges rekursives Programm (while, for, do sind nicht erlaubt!)!
Meine (fehlerhafte) Funktion:
Bitte um Hilfe, Danke im voraus.
Aufgabe 6:
Folgendes Programm berechnet iterativ die Spiegelzahl einer eingegebenen Zahl:
Java:
public class Spiegelzahl {
public static int reverse(int zahl) {
int ergebnis = 0;
while (zahl != 0) {
ergebnis = ergebnis * 10 + zahl % 10;
zahl /= 10;
}
return ergebnis;
}
public static void main(String[] args) {
int eingabe = IO.readInt("Zahl (>=0): ");
IO.println(reverse(eingabe));
}
}
Meine (fehlerhafte) Funktion:
Java:
static int reverse(int zahl) {
if (zahl/10 == 0) {
return zahl%10;
}
return zahl%10*10 +reverse(zahl/10);
}
Bitte um Hilfe, Danke im voraus.
Zuletzt bearbeitet: