Informática, perguntado por ederjuniorcrc, 3 meses atrás

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

Soluções para a tarefa

Respondido por eduardavidal34
6

Resposta:

B. 6

Explicação:

B = 3

portanto, B > 1

retorna MISTERIO (2, 3-1) + 2

Respondido por oliverdief
5

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

Perguntas interessantes