Algoritmos – Funções Recursivas
Gabarito: letra D (8). A função a(x), definida no pseudocódigo, é uma função recursiva que, para x ≤ 1, retorna 1; caso contrário, retorna x + a(x-1) + a(x-2). O cálculo para a(3) resulta em 8, conforme demonstrado abaixo.
Resolução passo a passo
A chamada a(3) desencadeia as seguintes chamadas recursivas:
a(1) → retorna 1 (caso base)
a(0) → retorna 1 (caso base)
a(2) = 2 + a(1) + a(0) = 2 + 1 + 1 = 4
Portanto, a(3) = 3 + a(2) + a(1) = 3 + 4 + 1 = 8
Cada execução da função possui sua própria variável local soma, que é inicializada com 0 e depois acumula o resultado da expressão. O resultado final é 8.
Análise das Alternativas
Alternativa A — ❌ Incorreta
O valor 17 não corresponde ao cálculo recursivo. Possível confusão ao somar termos incorretamente.
Alternativa B — ❌ Incorreta
1 é apenas o valor do caso base (x ≤ 1), não o resultado de a(3).
Alternativa C — ❌ Incorreta
4 é o resultado de a(2), não de a(3).
Alternativa D — ✅ Correta ⟵ GABARITO
Conforme demonstrado, a(3) retorna 8.
Alternativa E — ❌ Incorreta
13 é o resultado de uma sequência de Fibonacci modificada (3+2+1+...?), mas não do código dado.
Gabarito: letra D (8).