YannBergonzat

Untitled

Mar 30th, 2015
253
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2. // On met en place la fonction permettant de calculer la factorielle d'un nombre
  3. function factorielle($nb) {
  4.     // On teste que c'est bien un entier positif
  5.     if($nb >= 0 && is_int($nb)) {
  6.         // On affecte 1 aux variables pour être sûr qu'elles ne contiennent pas des "cochonneries"
  7.         $total = 1;
  8.  
  9.         // Traduction : Tant que $i est inférieur ou égal à $nb, on reste dans la boucle
  10.         for ($i = 2; $i <= $nb; $i++) {
  11.             // Comme la factorielle, c'est pour 5 par exemple 5*4*3*2*1, on va multiplier tous les chiffres de 2 à $nb (inutile de multiplier $nb par 1), $nb compris
  12.             $total = $total * $i;
  13.         }
  14.         /*
  15.             A ce point là, si on voulait la factoriel de 5, voici ce qui s'est passé :
  16.             - On rentre dans la boucle, $total est égal à 1, on le multiplie à $i, qui est égal à 1, on a donc 1. On ajoute 1 à $i qui vaut désormais 2.
  17.             - $i, qui vaut 2 est inférieur ou égal à $nb, qui vaut 5. Deuxième tour donc dans la boucle. On multiplie $total (qui vaut 1) à $i (qui vaut 2) et on stock ça dans $total. On a donc $total qui vaut 2. On ajoute ensuite 1 à $i, qui vaut désormais 3.
  18.             - $i toujours inférieur ou égal à $nb, troisième tour. $total = 2, on le multiplie à 3, ça fait 6. $total vaut donc 6. On rajoute 1 à $i, qui vaut 4.
  19.             - $i : 4 <= à $nb, 4ème tour, $total=6, on multiplie par 4, ça fait 24. On met ça dans $total, et on ajoute encore 1 à $i qui devient 5.
  20.             - $i qui vaut 5 égal à $nb, on continue dans la boucle, $total prend la valeur de $total (24) x $i (5) ce qui donne 120. On rajoute 1 à $i qui passe à 6.
  21.             - 6 n'est plus inférieur ou égal à $nb, on arrête de tourner en rond et on sort de la boucle.
  22.  
  23.             On a donc $total = 120.
  24.         */
  25.  
  26.         // Il ne nous qu'à renvoyer le résultat.
  27.         return $total;
  28.     }
  29.     else {
  30.         // Sinon on renvoit -1, comme dans l'énoncé
  31.         return -1;
  32.     }
  33. }
  34.  
  35. // La fonction est donc opérationnelle, on va pouvoir l'appeler !
  36.  
  37. $n=5;
  38. $fact = factorielle($n);
  39.  
  40. // Cela va afficher "La factorielle de 5 est 120"
  41. echo '<ul>';
  42. echo '<li>La factorielle de ' . $n . ' est ' . $fact . '.</li>';
  43.  
  44. $n=3;
  45. $fact = factorielle($n);
  46.  
  47. // Cela va afficher "La factorielle de 3 est 6"
  48. echo '<li>La factorielle de ' . $n . ' est ' . $fact . '.</li>';
  49. echo '</ul>';
  50.  
  51. // Bonne pratique : Ne pas fermer le tag si le fichier ne contient que du PHP
Advertisement
Add Comment
Please, Sign In to add comment