-
Este algoritmo é recursivo e deve-se executar a função até chegar ao caso básico (se (n == 1 ou n == 2)) para depois retornar os valores.
X(4) = X(3) + 4 * X(2)
X(3) = X(2) + 3 * X(1)
X(2) = 2
X(1) = 1
X(3) = 2 + 3 = 5
X(4) = 5 + 4 * 2
X(4) = 5 + 8 = 13
-
Encontrei a resolução dessa questão em vídeo em:
https://youtu.be/03xrxVI1xq4
-
E fica aquela dúvida: tem alguma forma mais fácil?
-
n = 4
se "n" é igual a 1 ou "n" é igual a 2 RETORNE n //como n é 4 então "n" não vai ser retornado
senão
retorne x(4-1) + 4 * x(4-2)
x3 + 4 * x2
o valor de n agora será 3, vamos fazer o mesmo procedimento:
se n é igual a 1 ou n é igual a 2 RETORNE n //como "n" é 3 então "n" não vai ser retornado.
senão
retorne x(3-1) + 3 * x(3-2) //agora vou resolver o restante da operação de cima q encontramos o 3.
x(3-1) + 3 * x(3-2) + 4 * x(2)
x2 + 3 * x1 + 4 * x2 //agora sim, a condição é 2, igual ao que se pede no início, lembra?: (n == 1 ou n == 2)
2 + 3 * 1 + 4 * 2
2 + 3 + 8
13
-
Rodrigo Marcelo, valeu pela contribuição. Depois que assistir ao vídeo, entendi a questão.
-
So fui entender com o comentario do rodrigo costa...simples e direto
-
So fui entender com o comentario do rodrigo costa...simples e direto
-
A função X é uma função relativamente simples.
Se o parâmetro passado for 1 ou 2, ela retorna o próprio parâmetro; caso contrário, o seu retorno é a própria função diminuída de 1 acrescida de n multiplicado pela própria função diminuída de 2. É a famosa RECURSIVIDADE, na qual a função chama a si mesma!
Vamos lá:
X(4), portanto, tem como resultado X(3) + 4*X(2).
E agora?
Vamos fazer uma parte de cada vez!
X(3)
X(3) é igual a X(2) + 3*X(1).
X(2) e X(1) são conhecidos! X(2) é igual a 2 e X(1) é igual a 1.
Logo, X(3) é tem como resultado 2 + 3*1 , que é igual a 5.
X(4), portanto, tem como resultado 5 + 4*X(2).
E, como X(2) é igual a 2,
X(4) tem como resultado 5 + 4*2, que é igual a 13.
Item correto.
-
A função X é uma função relativamente simples.
Se o parâmetro passado for 1 ou 2, ela retorna o próprio parâmetro; caso contrário, o seu retorno é a própria função diminuída de 1 acrescida de n multiplicado pela própria função diminuída de 2. É a famosa RECURSIVIDADE, na qual a função chama a si mesma!
Vamos lá:
X(4), portanto, tem como resultado X(3) + 4*X(2).
E agora?
Vamos fazer uma parte de cada vez!
X(3)
X(3) é igual a X(2) + 3*X(1).
X(2) e X(1) são conhecidos! X(2) é igual a 2 e X(1) é igual a 1.
Logo, X(3) é tem como resultado 2 + 3*1 , que é igual a 5.
X(4), portanto, tem como resultado 5 + 4*X(2).
E, como X(2) é igual a 2,
X(4) tem como resultado 5 + 4*2, que é igual a 13.
Gab. Certo.
.
Fonte. Victor Dalton
-
Pra quem não é programador como eu, consegui resolver assim:
Comando da questão: escreva X(4). Resultado tem que dar 13.
___________
Quando n=4:
X (n-1) + n * X (n-2)
X (4-1) + 4 * X (4-2)
X (3) + 4 * X (2) // quando n=2, retorna seu próprio valor, como afirma na questão. Logo x(2) retorna 2.
X (3) + 4 * 2
X (3) + 8
Obs: não sabemos quanto é X (3), ou seja, quando o n=3. Vamos calcular?
___________
Quando n=3:
X (n-1) + n * X (n-2)
X (3-1) + 3 * X (3-2)
X (2) + 3 * X (1) // quando n=2, retorna 2, quando n=1, retorna 1. Logo x(2) retorna 2, x(1), retorna 1.
2 + 3 * 1
2 + 3 = 5
Agora sabemos o valor quando n=3, que da 5. Basta substituir na função lá de cima:
X (3) + 8
5 + 8 = 13
Gabarito: CORRETO.
Pra mim ficou bem mais fácil entender, espero ter contribuido.
-
Força Guerreiro!!!!!!