Exercice supplémentaire C++ (lien ICC) : factorielle récursive [version HTML]
Pour calculer n! (factorielle n), on peut utiliser deux formules différentes :
- 
    La  formule itérative :
    
n! = 1 * 2 * 3 * ... * n  - 
  La  formule récursive définissant
  n!
  en fonction de (n-1)! :
  
0! (factorielle de zéro) = 1 pour tout entier n>0, n! = n * (n-1)!  
Dans un fichier C++, implémentez la fonction :
    
    unsigned int factorielleIterative(unsigned int n)
    
    qui calcule n! en faisant le produit des
    n
    premiers entiers à l'aide d'une boucle for.
  Dans le même fichier, implémentez la fonction:
  
  unsigned int factorielleRecursive(unsigned int n)
  
  qui calcule n! en utilisant cette deuxième
  formule. Cette fonction doit
  donc faire appel à elle-même pour calculer (n-1)!, sauf si n vaut 0,
  auquel cas elle devra retourner 1.
[Remarque : Le corps de la fonction tient en 4 lignes]
En réutilisant la fonction demander_nombre() déjà utilisée plusieurs fois dans les séries précédentes, écrivez, dans la fonction main(), le programme qui demande à l'utilisateur d'entrer un entier naturel n (entre 0 et 12 si vous utilisez des int ou des long int et entre 0 et 20 si vous utilisez des long long int), et affiche n! en faisant une première fois appel à factorielleIterative(), puis dans un second temps à factorielleRecursive().
Pour terminer, on pourra ajouter une boucle demandant à l'utilisateur s'il souhaite recommencer.
Exemple de déroulement
Entrez un nombre entier compris entre 0 et 12 : 12
Méthode itérative :
    12! = 479001600
Méthode récursive :
    12! = 479001600
Voulez-vous recommencer [o/n] ? o
Entrez un nombre entier compris entre 0 et 12 : 6
Méthode itérative :
    6! = 720
Méthode récursive :
    6! = 720
Voulez-vous recommencer [o/n] ? n
