Logo Passei Direto
Buscar
Questão 09 Analise o trecho de código em C a seguir. #include int comp(int a, int b) { if (b == 0) return a; else return comp(b,a%b); } int main() { printf("%d",comp(15,20)); } O valor impresso após a execução desse código é
User badge image
Marcelo Santos

semana passada

Respostas

User badge image

Ed Verified user icon

semana passada

O trecho de código apresentado é uma implementação da função que calcula o máximo divisor comum (MDC) de dois números inteiros usando o algoritmo de Euclides. Vamos analisar a função `comp(int a, int b)`: 1. A função verifica se `b` é igual a 0. Se for, retorna `a`, que é o resultado final do MDC. 2. Se `b` não for 0, a função chama a si mesma com os parâmetros `b` e `a % b` (o resto da divisão de `a` por `b`). No `main`, a função é chamada com os valores `15` e `20`. - Primeira chamada: `comp(15, 20)` - Como `20` não é 0, chama `comp(20, 15 % 20)` → `comp(20, 15)` - Segunda chamada: `comp(20, 15)` - Como `15` não é 0, chama `comp(15, 20 % 15)` → `comp(15, 5)` - Terceira chamada: `comp(15, 5)` - Como `5` não é 0, chama `comp(5, 15 % 5)` → `comp(5, 0)` - Quarta chamada: `comp(5, 0)` - Agora `b` é 0, então retorna `5`. Portanto, o valor impresso após a execução do código é `5`.

Essa resposta te ajudou?

0
Dislike0

Ainda com dúvidas?

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

Mais conteúdos dessa disciplina