Menu
Coddy logo textTech

Funções Recursivas

Parte da seção Lógica & Fluxo do Journey de PHP da Coddy — lição 8 de 68.

A recursão é uma técnica de programação onde uma função chama a si mesma para resolver um problema. Isso cria um comportamento semelhante a um loop, mas em vez de usar loops tradicionais, a função invoca a si mesma repetidamente com parâmetros modificados até chegar a uma solução.

Toda função recursiva deve ter dois componentes essenciais para funcionar corretamente:

Caso Base: Esta é a condição que interrompe a recursão. Sem ela, a função se chamaria infinitamente, fazendo com que seu programa trave. O caso base define quando a função deve retornar um resultado em vez de se chamar novamente.

Passo Recursivo: É aqui que a função chama a si mesma com uma versão modificada do problema original, movendo-se gradualmente em direção ao caso base.

Aqui está um exemplo simples de uma função recursiva que calcula um fatorial:

<?php
function factorial($n) {
    // Caso base: o fatorial de 1 é 1
    if ($n <= 1) {
        return 1;
    }
    
    // Passo recursivo: n! = n * (n-1)!
    return $n * factorial($n - 1);
}

echo factorial(5);  // Saída: 120
?>

Neste exemplo, factorial(5) chama factorial(4), que chama factorial(3), e assim por diante, até chegar a factorial(1) (o caso base). Então os resultados se multiplicam de volta: 1 × 2 × 3 × 4 × 5 = 120.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

challenge icon

Desafio

Fácil

Crie uma função recursiva chamada sumDigits que receba um número inteiro positivo e retorne a soma de seus dígitos. A função deve usar recursão para decompor o número dígito por dígito.

Você receberá uma entrada: um número inteiro positivo. Leia a entrada, chame sua função recursiva com esse número e imprima a soma de seus dígitos.

Formato de entrada: Uma linha contendo um número inteiro positivo

Saída esperada: A soma de todos os dígitos do número

Folha de consulta

Recursão é uma técnica de programação onde uma função chama a si mesma para resolver um problema. Toda função recursiva precisa de dois componentes:

Caso Base: A condição que interrompe a recursão para evitar loops infinitos.

Passo Recursivo: Onde a função chama a si mesma com parâmetros modificados, movendo-se em direção ao caso base.

Exemplo de uma função fatorial recursiva:

<?php
function factorial($n) {
    // Caso base: o fatorial de 1 é 1
    if ($n <= 1) {
        return 1;
    }
    
    // Passo recursivo: n! = n * (n-1)!
    return $n * factorial($n - 1);
}

echo factorial(5);  // Saída: 120
?>

Experimente você mesmo

<?php
// Ler a entrada
$number = intval(fgets(STDIN));

// TODO: Crie sua função recursiva sumDigits aqui


// Chame a função e exiba o resultado
echo sumDigits($number);
?>
quiz iconTeste seus conhecimentos

Esta lição inclui um quiz rápido. Comece a lição para respondê-lo e acompanhar seu progresso.

Todas as lições de Lógica & Fluxo