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 o retorno dentro do bloco else?
public static int restoRecursivo(int a, int b)
{
if ( critério de parada )
{
return caso base;
}
else
{
return código;
}
}


a) return restoRecursivo(a - b, b)
b) return b - restoRecursivo(a, b)
c) return restoRecursivo(a - b, b)
d) return restoRecursivo(a, a - b)
e) return a - restoRecursivo(a, b)
f) return restoRecursivo(b, a)
User badge image
Progresso com Exercícios

há 3 anos

Respostas

User badge image

Ed Verified user icon

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.

Essa resposta te ajudou?

0
Dislike0

Ainda não achou a resposta?

  • Integrado com os principais modelos de IA do mercado
  • Respostas em segundos
  • IA treinada para estudantes brasileiros.
PasseIA logoEvolua sua forma de estudar

Cadastre-se ou realize login

User badge image

Ed Verified user icon

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)`.

Essa resposta te ajudou?

0
Dislike0

Ainda com dúvidas?

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

Mais perguntas desse material

Suponha que exista a matriz valores com tamanho 3x3. Em cada posição, ela armazena o valor correspondente à soma de seus índices naquela posição. Qual o valor armazenado na última coluna da primeira linha da matriz após a execução do código abaixo?
for (int l = 0; l < valores.Length; l++) {
for (int c = 0; c < valores.Length; c++) {
valores[l, c] = l + c;
}
}


a) 0
b) 1
c) 2
d) 3
e) 4
f) 5

Qual o índice, no vetor a seguir, do primeiro elemento utilizado para divisão do vetor, utilizando o MergeSort para ordenação dos elementos?

Vetor = { 8, 10, 22, 5, 7, 11 }


2
5
4
3
2
1

Qual um termo que seja sinônimo para escrita de arquivos?


Salvamento
Salvamento
Carga
Alteração
Fechamento
Manipulação

Utilizando o algoritmo de ordenação por inserção, como ficaria ordenado o vetor a seguir logo após a primeira passada?

int[] valores = {5, 3, 7, 6, 2};


{ 3, 5, 7, 6, 2 }
{ 2, 3, 7, 5, 6 }
{ 5, 3, 7, 6, 2 }
{ 2, 3, 7, 6, 5 }
{ 3, 5, 7, 6, 2 }
{ 3, 5, 6, 2, 7 }

Observe o seguinte vetor:

int[] valores = {5,3,0,7,2,0};

É necessário, a cada dois valores, somá-los e inserir o resultado dessa soma na posição seguinte, onde consta o valor zero. Quais seriam as instruções que resolveriam esse problema?


valores[2] = valores[1] + valores[0];
valores[5] = valores[4] + valores[3];
valores[2] = valores[1] + valores[0];
valores[5] = valores[4] + valores[3];
valores[3] = valores[2] + valores[1];
valores[4] = valores[5] + valores[6];
valores[2] = valores[1] + valores[0];
valores[3] = valores[4] + valores[5];
valores[3] = valores[2] + valores[1];
valores[6] = valores[5] + valores[4];
valores[2] = valores[1] + valores[0];
valores[6] = valores[5] + valores[4];

Suponha que exista o vetor valores com tamanho 5. Na primeira posição ele possui o valor 1. Qual o valor armazenado no índice 2 após a execução do código abaixo?

for(int i=1;i valores[i] = valores[i-1] + 2;
}


a) 3
b) 4
c) 5
d) 6
e) 7

Mais conteúdos dessa disciplina