In vielen Fällen ist durch die Aufgabe selbst bestimmt, wie viele Iterationsschritte bis zur Lösung der Aufgabe notwendig sind. Durch die Vorgabe des Endwertes n bei der Berechnung vonn! oder des Exponenten n bei der Berechnung von an ist die Anzahl der Iterationsschritte festgelegt. Gleiches gilt für array-Operationen, wo die maximalen Indize der Feldgrößen die Anzahl der Iterationen bestimmen.
Der Iterationsanweisung für n! liegt die gleiche Überlegung wie für die Rekursion zugrunde. Allerdings ist sie für eine numerische Berechnung eines konkreten Zahlenwertes besser geeignet als die Rekursion. Im gewählten Beispiel ist die Tabellierung der Zwischenergebnisse ni gar nicht erforderlich, da die Ausgangswerte, die im (n-1)-ten Schritt berechnet worden sind, durch das Ergebnis des n-ten Schrittes überschrieben werden können.
Beispiel
Die Berechnung von n! aus Beispiel 2 bei der Rekursion ist auch auf andere Weise durch die Tabellierung von Zwischenergebnissen zu gewinnen:
\( \begin{array}{l}{n_0} = 1\\{n_i} = {n_{i - 1} } · ({n_{i - 1} } + 1); \qquad i = 1 \ldots n\end{array} \) Gl. 105
Wenn i = n erreicht worden ist (Abbruchbedingung) ist die Iteration beendet.
Als C-Sequenz wird n! iterativ so bestimmt:
int fact(int n)
{
int i=1
int result=1;
do
{
result=result*i++;
}
while (n>i);
return result;
};
Hinweis:
Iterationen werden nicht nur zur numerischen Berechnung, sondern auch für Datenoperationen wie Suchen, Sortieren,
Array-Operationen (Vertauschung, Transponierung, ...) oder in der Matrizenrechnung verwendet.