Dada a função X definida a seguir: function X (n,m : INTEGER...
function X (n,m : INTEGER) : INTEGER;
BEGIN IF (n = m) or (m=0) thenX: =1 elseX:=X(n-1,m+Xn-1m-1) END;
Qual o valor de X(5,3)?
Gabarito comentado
Confira o gabarito comentado por um dos nossos professores
Gabarito: D
Fundamento decisivo: O ramo ELSE está corrompido; reconstruí-lo como X(n-1,m) + X(n-1,m-1) sustenta o gabarito D.
- Verifique os casos-base antes de expandir uma chamada: nesta função, n = m ou m = 0 determina retorno 1.
- Quando a recorrência soma duas chamadas, calcule ambas antes de atribuir o resultado à chamada original.
- Se o código estiver corrompido, explicite a reconstrução adotada e condicione a conclusão a ela; não apresente o resultado como execução literal do trecho.
Clique para visualizar este gabarito
Visualize o gabarito desta questão clicando no botão abaixo
Comentários
Veja os comentários dos nossos alunos
Deepseek
"Traduzindo o pseudocódigo para JavaScript
O pseudocódigo da imagem tem uma sintaxe um pouco confusa (parece Pascal com alguns erros de digitação). Vou interpretar e traduzir para JavaScript.
Interpretação do pseudocódigo
text
function X (n, m : INTEGER) : INTEGER;
BEGIN
IF (n = m) or (m = 0)
then X := 1
else X := X(n-1, m + X(n-1, m-1)) // provável interpretação
END;
⚠️ A linha else X:=X(n-1,m+Xn-1m-1) está truncada na imagem. As leituras mais prováveis são:
X(n-1, m + X(n-1, m-1)) — aninhamento de chamadas
X(n-1, m) + X(n-1, m-1) — soma de duas chamadas (recorrência clássica tipo binomial)
A segunda é a interpretação mais natural em exercícios de recursão (relação de Pascal), então vou mostrar as duas.
Versão 1 — Interpretação mais provável (soma de duas chamadas)
javascript
function X(n, m) {
if (n === m || m === 0) {
return 1;
}
return X(n - 1, m) + X(n - 1, m - 1);
}
Essa função calcula o coeficiente binomial C(n, m) — o mesmo usado em triângulo de Pascal."
Não sei se tem uma forma eficiente de fazer isso, mas eu fiz até chegar ao caso base
Clique para visualizar este comentário
Visualize os comentários desta questão clicando no botão abaixo