Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- // On met en place la fonction permettant de calculer la factorielle d'un nombre
- function factorielle($nb) {
- // On teste que c'est bien un entier positif
- if($nb >= 0 && is_int($nb)) {
- // On affecte 1 aux variables pour être sûr qu'elles ne contiennent pas des "cochonneries"
- $total = 1;
- // Traduction : Tant que $i est inférieur ou égal à $nb, on reste dans la boucle
- for ($i = 2; $i <= $nb; $i++) {
- // 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
- $total = $total * $i;
- }
- /*
- A ce point là, si on voulait la factoriel de 5, voici ce qui s'est passé :
- - 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.
- - $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.
- - $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.
- - $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.
- - $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.
- - 6 n'est plus inférieur ou égal à $nb, on arrête de tourner en rond et on sort de la boucle.
- On a donc $total = 120.
- */
- // Il ne nous qu'à renvoyer le résultat.
- return $total;
- }
- else {
- // Sinon on renvoit -1, comme dans l'énoncé
- return -1;
- }
- }
- // La fonction est donc opérationnelle, on va pouvoir l'appeler !
- $n=5;
- $fact = factorielle($n);
- // Cela va afficher "La factorielle de 5 est 120"
- echo '<ul>';
- echo '<li>La factorielle de ' . $n . ' est ' . $fact . '.</li>';
- $n=3;
- $fact = factorielle($n);
- // Cela va afficher "La factorielle de 3 est 6"
- echo '<li>La factorielle de ' . $n . ' est ' . $fact . '.</li>';
- echo '</ul>';
- // Bonne pratique : Ne pas fermer le tag si le fichier ne contient que du PHP
Advertisement
Add Comment
Please, Sign In to add comment