# Rekursion in Iteration



## Sebaaaa (25. Jul 2014)

Dieses Programm soll die wiederholende Quersumme einer beliebigen Zahl N berechnen und die Anzahl Wiederholungen zurückgeben bis die Zahl die gewünschte Einstelligkeit erreicht hat.
Doch leider sollte dies als iteratives Programm gelöst werden und nicht rekursiv.


```
public static long digitSumCountUntilDigitalRoot(long n) {
   long quersumme = 0;
   while (n != 0) {
      quersumme = quersumme + n % 10;
      n = n / 10;
   }
   if(quersumme < 10) {
      return 1;
   }  
   return 1 + digitSumCountUntilDigitalRoot(quersumme);
}
```
Daher meine Frage wie ich dieses Programm iterativ hinbekomme;/?
Ich muss auf jeden Fall einen counter einfügen und eine 2te schleife, soviel weiß ich , nur wo diese Schleifen hin muss bzw. welche ist mir ein rätsel....


----------



## ceving (25. Jul 2014)

Sebaaaa hat gesagt.:


> Ich muss auf jeden Fall einen counter einfügen und eine 2te schleife, soviel weiß ich , nur wo diese Schleifen hin muss bzw. welche ist mir ein rätsel....



Die muss natürlich dahin wo die Rekursion ist. Schließlich soll die Rekursion ja ersetzt werden.


----------



## Sebaaaa (25. Jul 2014)

Ja wenn du mir bitte die eine Zeile hinschreiben könntest weil ich gerade sehr am Schlauch steh 
Sonst hätt ich ja auch nicht so dumm gefragt wenn ichs wüsste.?


----------



## ceving (25. Jul 2014)

Sebaaaa hat gesagt.:


> Ja wenn du mir bitte die eine Zeile hinschreiben könntest weil ich gerade sehr am Schlauch steh
> Sonst hätt ich ja auch nicht so dumm gefragt wenn ichs wüsste.?



Eine Methode ist rekursiv, wenn sie sich selber aufruft. Suche also die Stelle in deiner Methode, wo der Name der Methode auftaucht. Es gibt nur eine Stelle. Die Methode ist ja sehr übersichtlich.


----------



## ceving (25. Jul 2014)

Hier ist noch ein einfaches Beispiel zum vergleichen: 
Replace Recursion with Iteration


----------

