Wie funktioniert diese Rekursion?

2 Antworten

Strukturell ist die Rekursion so aufgebau, daß sie zunächst absteigt, danach wird dann beim Aufsteig vom auf dem Stack verbliebenen übergebenen Argument der Divisionsrest bestimmt:

writedec(123)
   (123)       #übergebenes Argument
   wrritedec(12)
      (12)
      writedec(1)
         #jetzt Rekursionsende
         1%10 =1 -> 1 ausgeben
      12%10=2 -> 2 ausgeben 
   123%10=3 ->3 ausgeben

Merke, der Zustand in einer Funktion ist VOR einem Funktionsaufruf der gleiche, wie NACH der Rückkehr - Ungewöhnliche Grenzfälle mal außen vor gelassen. Das bedeutet vor allem auch, daß das übergebene Argument n als lokale Variable den rekursiven Aufruf unverändert übersteht.

Geh in den Code und führe den schrittweise aus. Die Zahl wird ausgegeben. Mehr Return Value braucht es nicht.