Hallo Claudia !
Die Fakultaetsberechnung ist doch ein schoenes Beispiel. n!=(n-1)!*n ist das Rekursionsschema. Bekanntlich ist 1!=1. Nun kannst Du doch fuer (n-1)!=(n-1-1)!*(n-1) setzen usw. Lange Rede kurzer Sinn: die Funktion fakultaet ruft sich immer wieder selber auf. Erst wenn fakultaet(1) aufgerufen wird ist Schluss. Dann wird rueckwaerts die Fakultaet ausgerechnet.
float fakultaet(float arg)
{
if (arg==1.0)
return(1.0); // Fertig
else
return(arg\*fakultaet(arg-1)); //Selbstaufruf der Funkion fakultaet
}
int main(void)
{
float x=fakultaet(5);
return 0;
}
Viele sachen lassen sich sehr schoen rekursiv erledigen.
z.B. Dateien in einem Verzeichnisbaum suchen (wenn in einem Verzeichnis ein Unterverzeichnis ist, ruft sich die Funktion selbst wieder auf.)
oder das Tuerme von Hanoi Problem…
Tschuess !
Andreas