next up previous contents
suivant: Exercice 1 - Opérations monter: Sous-programmes récursifs précédent: Sous-programmes récursifs   Table des matières

Factorielle

Soit $n$ un nombre entier positif ou nul, le nombre $n!$, dit ''factorielle $n$'', est défini comme suit :


\begin{displaymath}n! = 1\times 2 \times \ldots \times n = \prod_{i = 1}^n i\end{displaymath}

avec le cas particulier $0! = 1$. On observe que


\begin{displaymath}n! = [1 \times \ldots \times (n-1)] \times n = [(n-1)!]\times n\end{displaymath}

Cette relation nous permet de réduire le calcul de la factorielle d'un nombre $n$ au calcul de la factorielle de $n-1$. En utilisant cette relation on obtient un algorithme récursif calculant la factorielle d'un nombre $n$.


\begin{algorithm}[H]
\dontprintsemicolon
\Fonction{$factorielle(n)$}
{
\eSi{$n ...
...urner{$1$}
}
{
\Retourner{$n \times factorielle(n - 1)$}
}
}
\end{algorithm}

Les doutes des plus sceptiques seront, je l'espère apaisés par la vue du sous-programme suivant :


\begin{clisting}
long factorielle(long n)
{
if (n == 0)
return 1;
return n * factorielle(n - 1);
}
\end{clisting}



Sous-sections
next up previous contents
suivant: Exercice 1 - Opérations monter: Sous-programmes récursifs précédent: Sous-programmes récursifs   Table des matières
klaus 2010-08-05