Questão de Algoritmos e Estrutura de Dados — Algoritmos — CEPS-UFPA 2022
- Código
- gp036801
- Banca
- CEPS-UFPA
- Órgão
- UFPA
- Ano
- 2022
- Cargo
- CEPS - - Analista de Tecnologia da Informação / Área: Desenvolvimento
- A16
- B32
- C256
- D272
- E1.024
GabaritoB — 32
Gabarito: letra B (32). A função TAM(n) é recursiva e, para n=1, retorna 1+n = 2. Para n>1, retorna a soma de duas chamadas a TAM(n/2). Portanto, cada chamada dobra o valor da subchamada, formando uma sequência que para n=16 resulta em 32.
A banca testa a capacidade de rastrear chamadas recursivas. Vamos executar manualmente:
TAM(16) = TAM(8) + TAM(8)
TAM(8) = TAM(4) + TAM(4)
TAM(4) = TAM(2) + TAM(2)
TAM(2) = TAM(1) + TAM(1)
TAM(1) = 2
→ TAM(2) = 2+2 = 4
→ TAM(4) = 4+4 = 8
→ TAM(8) = 8+8 = 16
→ TAM(16) = 16+16 = 32Outra forma: A recorrência é , . Resolvendo, .
Valor 16. Corresponde a ou a um único ramo da árvore.
Valor 32, conforme demonstrado.
Valor 256. Equivale a ou , mas não ao resultado da recursão.
Valor 272. Provável confusão com soma de potências ou contagem incorreta de chamadas.
Valor 1024. Corresponde a , mas não à saída do programa.
Para funções recursivas que chamam a si mesmas duas vezes com metade do argumento, monte a árvore de recursão ou escreva a recorrência. A cada nível o tamanho do problema se reduz pela metade e o valor dobra até a base.
Gabarito: letra B.
Link permanente: /questoes/gp036801