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)?
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