Exercice 17
Renommez la fonction factorielle() en
factorielle_iterative(). Écrivez la fonction
unsigned int factorielle_recursive (unsigned int n);
qui calcule la factorielle de n de façon récursive.
Placez les corps de ces fonctions dans une directive
#ifdef/#endif de la manière suivante :
#ifdef RECURSIVE
unsigned int
factorielle_recursive (unsigned int n)
{
...
}
unsigned int
factorielle (unsigned int n)
{
return factorielle_recursive (n);
}
#else
unsigned int
factorielle_iterative (unsigned int n)
{
...
}
unsigned int
factorielle(unsigned int n)
{
return factorielle_iterative (n);
}
#endif
De cette manière, si la macro RECURSIVE est définie,
seule la fonction factorielle_recursive() sera définie,
et l'appel à la fonction factorielle() sera un appel Ã
factorielle_recursive(). Sinon seule
factorielle_iterative() est définie, et un appel Ã
factorielle sera un appel Ã
factorielle_iterative().