Considere o seguinte método fatorial implementado em Java. ...
Quais resultados esse método fatorial retornará para os seguintes valores de n: 0, 1, 2, 3, 4 e 5, respectivamente?
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
A alternativa correta é a Alternativa B: 1, 1, 2, 6, 24, 120.
O tema da questão é a recursão, um conceito fundamental em linguagens de programação, como Java. Recursão é uma técnica onde uma função faz chamadas a si mesma, e é frequentemente usada para resolver problemas que podem ser divididos em subproblemas semelhantes. Um exemplo clássico disso é o cálculo do fatorial de um número.
O método fatorial implementado na questão utiliza essa técnica. Ele funciona da seguinte forma:
- Se n for maior que 1, o método retorna
n * fatorial(n - 1)
, chamando a si mesmo até que n seja 1. - Se n for 1 ou 0, o método retorna 1, que é a condição de parada da recursão.
Agora, vamos analisar por que a Alternativa B está correta:
- fatorial(0) retorna 1 (por definição, 0! é 1).
- fatorial(1) retorna 1 (1! é 1).
- fatorial(2) retorna 2 (2 * fatorial(1) = 2).
- fatorial(3) retorna 6 (3 * fatorial(2) = 6).
- fatorial(4) retorna 24 (4 * fatorial(3) = 24).
- fatorial(5) retorna 120 (5 * fatorial(4) = 120).
Agora, vejamos por que as outras alternativas estão incorretas:
Alternativa A: 0, 1, 2, 3, 4, 5
Esta alternativa está incorreta porque confunde a sequência de resultados com o valor do próprio n. O fatorial não retorna o próprio n, exceto em alguns casos triviais (como 0! = 1 e 1! = 1).
Alternativa C: 1, 1, 1, 1, 1, 1
Esta alternativa está incorreta porque ignora o cálculo do fatorial a partir de n maior que 1. Todos os valores de fatorial para n maior que 1 são diferentes de 1.
Alternativa D: 0, 1, 2, 6, 24, 120
Esta alternativa está incorreta porque presume que fatorial(0) retorna 0, o que não é correto. Por definição, 0! é 1.
Alternativa E: -1, 0, 2, 6, 12, 20
Esta alternativa está completamente errada, pois nenhum dos resultados, exceto fatorial(2), está de acordo com o cálculo do fatorial. Além disso, fatorial nunca retorna valores negativos.
Gostou do comentário? Deixe sua avaliação aqui embaixo!
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Essa questão de cara já é possível descartar 3 alternativas (A,D,E)
Pois qualquer valor de N menor que 2 vai ter retorno o valor 1 (n > 1)
Então quando N= 0 o seu retorno vai ser 1;
Então quando N= 1 o seu retorno vai ser 1;
Sobrando as alternativas B e C onde
Quando N= 2 o seu retorno vai ser 2;
A partir de N= 2 ou qualquer valor maior que 1 não tem como mais o resultado final ser 1 portanto alternativa correta B.
5 x 24 = 120
4 x 6 = 24
3 x 2 = 6
2 x 1 = 2
1 x 1 = 1
1
Alternativa B
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo