O código Java abaixo é uma implementação:public class Mister...

Próximas questões
Com base no mesmo assunto
Ano: 2015 Banca: NC-UFPR Órgão: COPEL
Q1210729 Programação
O código Java abaixo é uma implementação:
public class Misterio {                public static long Misterio(long x) {                        if (x == 1) return 1;                        else return x * Misterio(x-1);               }  } 

Alternativas

Gabarito comentado

Confira o gabarito comentado por um dos nossos professores

Alternativa correta: E - recursiva do fatorial.

O tema desta questão é a identificação e compreensão de métodos recursivos em linguagens de programação, mais especificamente em Java. A recursividade é uma técnica de programação onde uma função chama a si mesma para resolver um problema que pode ser decomposto em subproblemas menores e mais fáceis de solucionar. No código apresentado, temos um exemplo clássico de uma função recursiva que calcula o fatorial de um número x.

Para resolver essa questão, o candidato precisa reconhecer o padrão do cálculo do fatorial, que é definido como o produto de todos os números inteiros positivos de 1 até n. No caso do código em questão, a função Misterio realiza o seguinte processo: se x é igual a 1, ela retorna 1 (caso base da recursão), caso contrário, ela retorna x multiplicado pelo resultado de Misterio(x-1), que é uma chamada recursiva da mesma função com o argumento decrementado. Esse processo se repete até que o caso base seja alcançado.

O motivo pelo qual a alternativa E está correta é que o código efetivamente implementa o cálculo do fatorial de forma recursiva. O fatorial de um número n é geralmente representado por n! e é o produto de todos os inteiros positivos menores ou iguais a n. No caso do código, a chamada Misterio(x) resultará em x * (x-1) * (x-2) * ... * 2 * 1 quando o caso base for atingido, o que é exatamente o cálculo do fatorial de x.

As outras alternativas são incorretas porque: A fala sobre exponenciação, que envolve elevar um número a uma potência, não relacionado ao código; B e C falam sobre a série de Fibonacci, que é uma sequência de números onde cada número é a soma dos dois anteriores, também não evidente no código fornecido; D sugere uma implementação iterativa da exponenciação, que, além de estar errada quanto ao tipo de operação matemática, não corresponde ao método de implementação (recursivo e não iterativo).

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

Alternativa (E) recursiva do fatorial. 

Clique para visualizar este comentário

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