Menu
Coddy logo textTech

Funciones recursivas

Parte de la sección Lógica y Flujo del Journey de PHP de Coddy — lección 8 de 68.

La recursividad es una técnica de programación en la que una función se llama a sí misma para resolver un problema. Esto crea un comportamiento similar a un bucle, pero en lugar de utilizar bucles tradicionales, la función se invoca repetidamente a sí misma con parámetros modificados hasta que alcanza una solución.

Cada función recursiva debe tener dos componentes esenciales para funcionar correctamente:

Caso Base: Esta es la condición que detiene la recursión. Sin ella, la función se llamaría a sí misma infinitamente, provocando que tu programa falle. El caso base define cuándo la función debe devolver un resultado en lugar de llamarse a sí misma de nuevo.

Paso recursivo: Aquí es donde la función se llama a sí misma con una versión modificada del problema original, moviéndose gradualmente hacia el caso base.

Aquí tienes un ejemplo sencillo de una función recursiva que calcula un factorial:

<?php
function factorial($n) {
    // Caso base: el factorial de 1 es 1
    if ($n <= 1) {
        return 1;
    }
    
    // Paso recursivo: n! = n * (n-1)!
    return $n * factorial($n - 1);
}

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

En este ejemplo, factorial(5) llama a factorial(4), que llama a factorial(3), y así sucesivamente, hasta que llega a factorial(1) (el caso base). Luego, los resultados se multiplican de vuelta: 1 × 2 × 3 × 4 × 5 = 120.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

challenge icon

Desafío

Fácil

Crea una función recursiva llamada sumDigits que reciba un número entero positivo y devuelva la suma de sus dígitos. La función debe utilizar la recursividad para descomponer el número dígito por dígito.

Recibirás una entrada: un número entero positivo. Lee la entrada, llama a tu función recursiva con ese número e imprime la suma de sus dígitos.

Formato de entrada: Una línea que contiene un número entero positivo

Salida esperada: La suma de todos los dígitos del número

Hoja de referencia

La recursividad es una técnica de programación en la que una función se llama a sí misma para resolver un problema. Toda función recursiva necesita dos componentes:

Caso base: La condición que detiene la recursividad para evitar bucles infinitos.

Paso recursivo: Donde la función se llama a sí misma con parámetros modificados, avanzando hacia el caso base.

Ejemplo de una función factorial recursiva:

<?php
function factorial($n) {
    // Caso base: el factorial de 1 es 1
    if ($n <= 1) {
        return 1;
    }
    
    // Paso recursivo: n! = n * (n-1)!
    return $n * factorial($n - 1);
}

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

Pruébalo tú mismo

<?php
// Leer la entrada
$number = intval(fgets(STDIN));

// TODO: Crea tu función recursiva sumDigits aquí


// Llama a la función y muestra el resultado
echo sumDigits($number);
?>
quiz iconPonte a prueba

Esta lección incluye un breve cuestionario. Empieza la lección para responderlo y registrar tu progreso.

Todas las lecciones de Lógica y Flujo