# rekursiv zahl umdrehen



## Guest (20. Jan 2006)

hallo,ich möchte zur übung für eine klausur folgende aufgabe lösen. Es gilt eine rekursive Methode zu schreiben die eine übergebene Zahl umdreht.

z.B. aus 123 mach 321.

iterativ war das kein problem, allerdings finde ich einfach keinen ansatz für die rekursive lösung.

es handelt sich um keine hausaufgabe, finde einfach keinen richtigen ansatz....ich weiss das ich die letzte stelle bekommen kann mit %10 und die zahl kürzer machen kann mit /10, aber irgendwie funktioniert es nicht richtig.

Wäre für Tipps dankbar.


----------



## bygones (21. Jan 2006)

StringBuffer mit reverse


----------



## Guest (21. Jan 2006)

danke, aber wir dürfen keine strings verwenden...sondern sollen selber durch
rekursion das problem lösen.

ich hab an sowas gedacht:


```
public int reverse(int a) {
if(a == 0) 
return 0;
else {
return a % 10 * reverse (a/10);
}
}
```

Aber das stimmt nicht.....bin wirklich am verzweifeln....weiss noch jemand nen tipp oder so?


----------



## bygones (21. Jan 2006)

dann mal schön die Suchfunktion hier nutzen 

kommt z.b. raus
http://www.java-forum.org/de/viewtopic.php?t=10790&highlight=zahl+umdrehen


----------



## Marc-André Aßbrock (21. Jan 2006)

Falls die Zahl einstellig ist gibst du sie zurück. Ansonsten nimmst du die letzte Ziffer an den Anfang und von dem Rest rufst du wieder die Methode aus.

MfG
M.A.


----------



## Bleiglanz (21. Jan 2006)

mit einem kleinen Trick

```
private static int reverse(int i) {
        return reverse2(0,i);
    }
    
    private static int reverse2(int result, int i) {
        if(i<10){
            return result*10 +i;
        }
        return reverse2(result*10+i%10,i/10);
    }
```
es geht aber auch direkt, d.h in einer funktion

```
int reverse(int zahl)

gehe mit 123004 rein

rekursion mit dem mod10 trick machen

zuerst  4 und 12300 ausrechnen

und jetzt musst du die zehnerpotzenz wissen

und also 4 * 10 hoch (anzahl der stellen von 12300) + reverse(12300)

zurückgeben
```
ist aber etwas mühselig


----------

