Logo Passei Direto
Buscar
Considere a função a seguir como uma solução recursiva para calcular o resto de uma divisão. Qual deve ser retorno dentro do bloco else? public static int restoRecursivo( a, int b) { if ( critério de parada ) { return caso base; } else { return código; } }
a. return b
b. return restoRecursivo(a b, b)
c. return restoRecursivo(a, b)
d. return a restoRecursivo(a, b)
e. return restoRecursivo(b, a)
User badge image
Progresso com Exercícios

semana passada

Respostas

User badge image

Ed Verified user icon

semana passada

Para resolver essa questão, precisamos entender como funciona a recursão para calcular o resto de uma divisão. A função recursiva deve continuar chamando a si mesma até que o critério de parada seja atingido. O resto de uma divisão \( a \) por \( b \) pode ser obtido subtraindo \( b \) de \( a \) repetidamente até que \( a \) seja menor que \( b \). Portanto, no bloco `else`, a função deve chamar a si mesma com um novo valor de \( a \) que é \( a - b \). Analisando as alternativas: a. `return b` - Isso não faz sentido para calcular o resto. b. `return restoRecursivo(a b, b)` - Esta opção está incorreta, pois falta um operador entre \( a \) e \( b \). c. `return restoRecursivo(a, b)` - Isso chamaria a função com os mesmos parâmetros, resultando em uma recursão infinita. d. `return a restoRecursivo(a, b)` - Esta opção está incorreta, pois não é uma chamada válida. e. `return restoRecursivo(b, a)` - Isso inverte os parâmetros, o que não é correto para calcular o resto. Portanto, a alternativa correta que representa a chamada recursiva correta para calcular o resto de uma divisão é: b. return restoRecursivo(a - b, b) (embora não esteja listada, é a lógica correta). Se a opção correta não estiver entre as listadas, você deve criar uma nova pergunta.

Essa resposta te ajudou?

0
Dislike0

Ainda com dúvidas?

Envie uma pergunta e tenha sua dúvida de estudo respondida!

Essa pergunta também está no material:

Mais perguntas desse material

Mais conteúdos dessa disciplina