Questão nº 47

Questão de Web Design · FGV TJAM 2013 (nº 47)

FGV2013Web designerWeb Design
Gabarito: Cver comentário ↓

Observe o código a seguir, que contém uma função em JavaScript.

Figura da questão de Web Design

Na execução, se for digitado para num o número 5, o código irá gerar o seguinte número como saída:

Resposta comentada

Gabarito Alternativa C

Recursão é quando uma função chama a si mesma para resolver um problema, dividindo-o em partes menores até chegar a um caso básico que ela sabe resolver diretamente. Neste código, a função calcular calcula o fatorial de um número.

  • (A) Incorreta: 24 é o fatorial de 4 (4!=4×3×2×1=244! = 4 \times 3 \times 2 \times 1 = 24). A armadilha da banca aqui é que o aluno pode esquecer de multiplicar pelo próprio num (5) na etapa final da recursão, ou parar a execução um passo antes, calculando $4! em vez de \5!$.
  • (B) Incorreta: 48 não corresponde ao fatorial de 5 nem a uma etapa intermediária comum de erro.
  • (C) Correta: Se num for 5, a função calcula $5!$ (fatorial de 5). A sequência de chamadas e retornos é:
    • calcular(5) retorna 5 * calcular(4)
    • calcular(4) retorna 4 * calcular(3)
    • calcular(3) retorna 3 * calcular(2)
    • calcular(2) retorna 2 * calcular(1)
    • calcular(1) retorna 1 * calcular(0)
    • calcular(0) retorna 1 (caso base)
      Substituindo de volta:
    • calcular(1) retorna 1 * 1 = 1
    • calcular(2) retorna 2 * 1 = 2
    • calcular(3) retorna 3 * 2 = 6
    • calcular(4) retorna 4 * 6 = 24
    • calcular(5) retorna 5 * 24 = 120.
  • (D) Incorreta: 180 não corresponde ao fatorial de 5 nem a uma etapa intermediária comum de erro.
  • (E) Incorreta: 240 não corresponde ao fatorial de 5. Poderia ser um erro se o aluno, por exemplo, pensasse que o caso base calcular(0) retornasse 2 em vez de 1, o que dobraria o resultado.

Fonte: FGV TJAM 2013 Web designer (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho