Ed
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.
Mais perguntas desse material