Como funciona a recursão em Java
Um método recursivo é aquele que chama a si mesmo dentro do próprio corpo. É uma técnica usada para resolver problemas que podem ser divididos em versões menores do mesmo problema.
O fatorial de um número é a multiplicação dele por todos os números menores até 1. Por exemplo, o fatorial de 4 é 4 * 3 * 2 * 1.
Carregando...
Toda função recursiva precisa de um caso base, uma condição que interrompe as chamadas. Sem ele, o método chamaria a si mesmo indefinidamente, até o programa travar com um erro de StackOverflowError.
Carregando...
Para fatorial(4), o Java vai chamando o método repetidamente até atingir o caso base, e depois resolve as multiplicações de trás para frente.
fatorial(4) = 4 * fatorial(3)
fatorial(3) = 3 * fatorial(2)
fatorial(2) = 2 * fatorial(1)
fatorial(1) = 1 (caso base)
Resultado: 4 * 3 * 2 * 1 = 24
Quase tudo que é feito com recursão também pode ser feito com loops, e geralmente os loops são mais eficientes em Java. A recursão se torna mais natural em problemas que já são, por definição, divididos em partes menores, como percorrer estruturas em árvore ou calcular sequências matemáticas.