Les fonctions récursives en PHP
Les fonctions récursives en PHP
-
Objectifs
- Connaitre les fonctions récursives en PHP
-
Définition
- En programmation, la récursivité consiste à créer une méthode ou une procédure qui s’appelle elle-même.
- Une fonction est dite récursive si, à l’intérieur de son corps, elle s’appelle elle-même avec une valeur de paramètre différent (sinon elle boucle).
- Chaque appel constitue un niveau de récursivité.
- L’exemple le plus classique est celui de la fonction qui retourne la factorielle d’un nombre entier n (notée n!).
- Pour calculer n!, une fonction récursive calcule n × (n – 1)!, ce qui implique un nouvel appel de la fonction factorielle et ainsi de suite jusqu’à calculer 1! (par définition 0! = 1), puis on remonte jusqu’à n!.
-
Utilisation
-
Applications
-
App01
- Écrire une fonction récursive pour calculer la factorielle pour un nombre donné, n :
-
App02
- Écrire une fonction récursive affichage pour afficher à l’écran les nombres inférieurs à 20 a partir d’un nombre donnée par l’utilisatuer:
-
App03
- Ecrire un sous-programme récursif qui calcule la somme des n premiers carrés.
- Par exemple, si n vaut 3, ce sous-programme calculera 12 + 22 + 32.
- Ce sous programme n’est défini que pour un n supérieur à 0.
<?php
function facto($n)
{
if ($n==1) return 1;
else {return $n*facto($n-1);}
} echo "factorielle =",facto(150);
?>
Une fonction qui s’appelle elle-même est un boucle infinie par définition, donc n’oubliez pas de toujours prévoir un cas de sortie.
<?php
function factorielle($n) {
// Cas de base
if ($ n == 0) {
echo "Cas de base: $n = 0. Renvoi de 1 ... <br>";
return 1;
}
// Récursivité
echo "$n = $n: Calcul de $n * factorielle (". ($n-1). ") ... <br>";
$resultat = ($n * factorielle($n-1));
echo "Résultat de $n * factorielle (". ($n-1). ") = $resultat. Renvoi de $resultat ... <br>";
return $resultot;
}
echo "La factorielle de 5 est:". factorielle(5);
?>
function affichage($number) {
if($number<=10){
echo "$number <br/>";
affichage($number+1);
}
}
affichage(5);