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.

Na execução, se for digitado para num o número 5, o código irá gerar o seguinte número como saída:
- A24
- B48
- C120 (alternativa correta)
- D180
- E240
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 (). 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
numfor 5, a função calcula $5!$ (fatorial de 5). A sequência de chamadas e retornos é:calcular(5)retorna5 * calcular(4)calcular(4)retorna4 * calcular(3)calcular(3)retorna3 * calcular(2)calcular(2)retorna2 * calcular(1)calcular(1)retorna1 * calcular(0)calcular(0)retorna1(caso base)
Substituindo de volta:calcular(1)retorna1 * 1 = 1calcular(2)retorna2 * 1 = 2calcular(3)retorna3 * 2 = 6calcular(4)retorna4 * 6 = 24calcular(5)retorna5 * 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.