Ed
ano passado
Para resolver a questão sobre a função recursiva que calcula o resto de uma divisão, precisamos entender como a recursão funciona nesse contexto. A ideia é que, se `a` for menor que `b`, o resto da divisão de `a` por `b` é `a` (caso base). Caso contrário, devemos subtrair `b` de `a` e continuar o processo até que `a` seja menor que `b`. Analisando as opções: a) `return restoRecursivo(a - b, b)` - Esta opção está correta, pois subtrai `b` de `a` e chama a função novamente, o que é apropriado para calcular o resto. b) `return b - restoRecursivo(a, b)` - Esta opção não faz sentido para calcular o resto. c) `return restoRecursivo(a - b, b)` - Esta opção é idêntica à (a) e também está correta. d) `return restoRecursivo(a, a - b)` - Esta opção não é adequada, pois não está subtraindo `b` de `a`. e) `return a - restoRecursivo(a, b)` - Esta opção não é correta para o cálculo do resto. f) `return restoRecursivo(b, a)` - Esta opção inverte os parâmetros e não é adequada para o cálculo do resto. Portanto, as opções corretas para o retorno dentro do bloco else são: a) e c). Se você precisa escolher apenas uma, a) é a mais comum e direta.
Cadastre-se ou realize login
Ed
há 3 anos
Dentro do bloco else, o retorno correto seria a opção (a) `return restoRecursivo(a - b, b)`. Isso ocorre porque a função está sendo usada para calcular o resto de uma divisão, e a lógica recursiva é subtrair o divisor (b) do dividendo (a) até que o critério de parada seja atingido. Portanto, a chamada recursiva correta seria `restoRecursivo(a - b, b)`.
Mais perguntas desse material