Qual é o valor retornado pela chamada MISTERIO(2,3) da seguinte função recursiva?
function MISTERIO(int A,int B)
{
if (B == 1)
return A;
else if (B > 1)
return MISTERIO(A,B-1) + A;
else
return MISTERIO(A,B+1) – A;
}
a. 8
b. 6
c. 4
d. 3
e. 1
Respostas
Resposta:
B. 6
Explicação:
B = 3
portanto, B > 1
retorna MISTERIO (2, 3-1) + 2
Resposta:
Alternativa B - 6
Explicação:
MISTERIO(2,3){ //inicio da função
if(3 == 1) //3 = 1 ? falso
return 2;
else if (3 > 1) //3 > 1 ? verdadeiro
return MISTERIO(2,3-1){ //chama novamente a função
if(2 == 1) //2 = 1 ? falso
return 2;
else if (2 > 1) //2 > 1 ? verdadeiro
return MISTERIO(2,2-1){ //chama novamente a função
if(1 == 1) //1 = 1 ? verdadeiro
return 2; //retorna 2
} + 2; //retorna 2 + 2
} + 2; //retorna 4 + 2
} //retorna 6