Analise o seguinte código escrito na linguagem Java: public ...

Próximas questões
Com base no mesmo assunto
Q1393306 Programação

Analise o seguinte código escrito na linguagem Java:


 public static double recursive (double d) {

                if (d <= 1) {

                              return 1;

               }

                else {

                            return d * recursive(d - 1);

                 }

  } 



Assinale o conteúdo que será exibido na saída do programa quando a função for chamada com o parâmetro 6:  

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

A alternativa correta é a D - 720.

Para entender o porquê desta alternativa estar correta, é preciso analisar o código Java fornecido e ter conhecimento sobre a recursividade. O código em questão implementa uma função recursiva chamada recursive, que recebe um parâmetro do tipo double e retorna um valor também do tipo double.

A função verifica se o valor passado como argumento é menor ou igual a 1 (d <= 1). Se for, a função retorna 1. Caso contrário, ela retorna o valor do argumento multiplicado pelo resultado da função recursive chamada com o valor do argumento subtraído de 1 (return d * recursive(d - 1)). Esse comportamento é típico de uma função que calcula o fatorial de um número.

O fatorial de um número n é o produto de todos os inteiros positivos menores ou iguais a n e é representado por n!. Portanto, fatorial de 6 (6!) é calculado da seguinte maneira:

  • 6! = 6 × 5 × 4 × 3 × 2 × 1
  • 6! = 720

Quando a função recursive é chamada com o parâmetro 6 (recursive(6)), ela executa a seguinte sequência de chamadas:

  1. recursive(6) -> 6 * recursive(5)
  2. recursive(5) -> 5 * recursive(4)
  3. recursive(4) -> 4 * recursive(3)
  4. recursive(3) -> 3 * recursive(2)
  5. recursive(2) -> 2 * recursive(1)
  6. recursive(1) -> retorna 1

Assim, o resultado é o produto destas chamadas, que é igual a 720. Portanto, a alternativa D é a correta, pois 720 é o valor do fatorial de 6.

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

6 x 120 = 720

5 x 24 = 120

4 x 6 = 24

3 x 2 = 6

2 x 1 = 2

1

Alternativa: D

Trata-se da implementação do algoritmo para calcular o fatorial de um número, através da recursividade. Estar familiarizado, facilita pra acelerar na resposta e não demorar analisando códigos. Algo que serve pra tomar tempo na prova.

recursive(6)

6*recursive(5)

6*5*recursive(4)

6*5*4*recursive(3)

6*5*4*3*recursive(2)

6*5*4*3*2*recursive(1)

6*5*4*3*2*1

720

Clique para visualizar este comentário

Visualize os comentários desta questão clicando no botão abaixo