Considere o seguinte método fatorial implementado em Java.  ...

Próximas questões
Com base no mesmo assunto
Q874237 Programação
Considere o seguinte método fatorial implementado em Java.          public static int fatorial( int n ){         return n > 1 ? n*fatorial( n -1 ): 1; }
Quais resultados esse método fatorial retornará para os seguintes valores de n: 0, 1, 2, 3, 4 e 5, respectivamente?
Alternativas

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