C-Programmierung

Iterationsbeispiel

Rekursionsbeispiel | | Endrekursion

Bei der Ausführung der rekursiven Fakultätsfunktion verbrauchen die Funktionsaufrufe einen Großteil der Zeit.

Die folgenden iterative Variante benötigt keine zusätzlichen Funktionsaufrufe und ist daher deutlich schneller:

$ n! = \prod_{i=1}^n i $
unsigned int factorial(unsigned int n)
{
   unsigned int i,f;

   for (f=1,i=1; i<n; i++) f*=i;

   return(f);
}

Für die Fakultätsfunktion ist daher die iterative Variante vorzuziehen.

Rekursionsbeispiel | | Endrekursion

Options: