Logo Passei Direto
Buscar
Questão 05 (COMPERVE-2016) 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
Marcos Omena

ontem

Respostas

User badge image

Ed Verified user icon

ontem

O trecho de código apresentado parece implementar o algoritmo de Euclides para calcular o máximo divisor comum (MDC) entre dois números inteiros. Vamos analisar o que acontece quando chamamos a função `comp(15, 20)`. 1. A função `comp` recebe os valores `a = 15` e `b = 20`. 2. Como `b` não é igual a 0, a função chama a si mesma com os parâmetros `comp(20, 15 % 20)`, que resulta em `comp(20, 15)`. 3. Agora, `a = 20` e `b = 15`. Novamente, `b` não é 0, então chamamos `comp(15, 20 % 15)`, que resulta em `comp(15, 5)`. 4. Agora, `a = 15` e `b = 5`. Novamente, `b` não é 0, então chamamos `comp(5, 15 % 5)`, que resulta em `comp(5, 0)`. 5. Agora, `a = 5` e `b = 0`. Como `b` é 0, a função retorna `a`, que é 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