Mudanças entre as edições de "Pensamento Computacional - Tópicos Adicionais"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 42: Linha 42:
  
 
</syntaxhighlight>
 
</syntaxhighlight>
 +
 +
Observe que um método recursivo deve ser cuidadosamente planejado, pois em algum momento a chamada recursiva não é executada. Neste exemplo é o caso quando n=1 ou n=0.

Edição das 14h49min de 11 de dezembro de 2023

Conceito de Recursividade

Determinados problemas podem ser resolvidos de forma muito elegante e compacta usando o conceito de recursividade.

A recursividade acontece quando um método chama a ele mesmo resolvendo um determinado problema para um subconjunto de dados. Um bom exemplo de solução com recursividade é o problema de calcular o fatorial. Observe que o fatorial de 5, por exemplo, é:


  

Por sua vez, podemos reescrever da seguinte forma:

  
  
  
  
  

Observe se tivermos um método para o cálculo de fatorial de n, então ele pode se "autoinvocar" para calcular para n-1. Vamos a um exemplo:

public class FatorialRecursivo {

    public static void main(String[] args) {
        // Testando o método fatorial
        int numero = 5;
        long resultado = calcularFatorial(numero);
        System.out.println("O fatorial de " + numero + " é: " + resultado);
    }

    // Função recursiva para calcular o fatorial de um número
    public static long calcularFatorial(int n) {
        // Caso base: fatorial de 0 ou 1 é 1
        if (n == 0 || n == 1) {
            return 1;
        } else {
            // Chamada recursiva: fatorial(n) = n * fatorial(n-1)
            return n * calcularFatorial(n - 1);
        }
    }
}

Observe que um método recursivo deve ser cuidadosamente planejado, pois em algum momento a chamada recursiva não é executada. Neste exemplo é o caso quando n=1 ou n=0.