Menu
Coddy logo textTech

Fonctions récursives

Fait partie de la section Logique & Flux du Journey PHP de Coddy — leçon 8 sur 68.

La récursion est une technique de programmation dans laquelle une fonction s'appelle elle-même pour résoudre un problème. Cela crée un comportement semblable à une boucle, mais au lieu d'utiliser des boucles traditionnelles, la fonction s'invoque de manière répétée avec des paramètres modifiés jusqu'à ce qu'elle parvienne à une solution.

Chaque fonction récursive doit avoir deux composants essentiels pour fonctionner correctement :

Cas de base : C'est la condition qui arrête la récursion. Sans elle, la fonction s'appellerait elle-même à l'infini, provoquant le plantage de votre programme. Le cas de base définit quand la fonction doit renvoyer un résultat au lieu de s'appeler à nouveau.

Étape récursive : C'est ici que la fonction s'appelle elle-même avec une version modifiée du problème d'origine, se rapprochant progressivement du cas de base.

Voici un exemple simple d'une fonction récursive qui calcule une factorielle :

<?php
function factorial($n) {
    // Cas de base : la factorielle de 1 est 1
    if ($n <= 1) {
        return 1;
    }
    
    // Étape récursive : n! = n * (n-1)!
    return $n * factorial($n - 1);
}

echo factorial(5);  // Affiche : 120
?>

Dans cet exemple, factorial(5) appelle factorial(4), qui appelle factorial(3), et ainsi de suite, jusqu'à ce qu'il atteigne factorial(1) (le cas de base). Ensuite, les résultats se multiplient en remontant : 1 × 2 × 3 × 4 × 5 = 120.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

challenge icon

Défi

Facile

Créez une fonction récursive appelée sumDigits qui prend un entier positif et renvoie la somme de ses chiffres. La fonction doit utiliser la récursion pour décomposer le nombre chiffre par chiffre.

Vous recevrez une entrée : un entier positif. Lisez l'entrée, appelez votre fonction récursive avec ce nombre, et affichez la somme de ses chiffres.

Format d'entrée : Une ligne contenant un entier positif

Sortie attendue : La somme de tous les chiffres du nombre

Aide-mémoire

La récursion est une technique de programmation où une fonction s'appelle elle-même pour résoudre un problème. Chaque fonction récursive a besoin de deux composants :

Cas de base : La condition qui arrête la récursion pour éviter les boucles infinies.

Étape récursive : Où la fonction s'appelle elle-même avec des paramètres modifiés, se rapprochant du cas de base.

Exemple d'une fonction factorielle récursive :

<?php
function factorial($n) {
    // Cas de base : la factorielle de 1 est 1
    if ($n <= 1) {
        return 1;
    }
    
    // Étape récursive : n! = n * (n-1)!
    return $n * factorial($n - 1);
}

echo factorial(5);  // Affiche : 120
?>

Essayez vous-même

<?php
// Lire l'entrée
$number = intval(fgets(STDIN));

// TODO : Créez votre fonction récursive sumDigits ici


// Appeler la fonction et afficher le résultat
echo sumDigits($number);
?>
quiz iconTestez-vous

Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.

Toutes les leçons de Logique & Flux