SóProvas


ID
1568230
Banca
FUNDATEC
Órgão
BRDE
Ano
2015
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considere a função recursiva a seguir:


function f(n) {

if (n == 0) return 0; else return 3*f(n-1) - 1;

}


Qual o valor de f(3)?

Alternativas
Comentários
  • f (3) 

        3* f (2) -1 = -13

            3* f (1) -1 = -4

                3* f(0) - 1 = -1

                


  • socorro como fazer isso?

  • Gabarito letra A (-13).

    Com mais detalhes: Função recursiva é quando ela pode invocar a si mesma.

    No caso, quando executamos a primeira vez, com "n = 3" ela fica: "3* f(3-1) -1", desta forma, ela está invocando novamente a função passando o valor de "n = 3-1" ou "f(2)". ela fará isso infinitamente, ou até que o valor da condição "if" seja atendida, como acontece quando o valor de N é 0.

    Então temos:

    f(0) = 0 (por que sai no if n == 0)

    f(1) = 3* 0 - 1 = -1

    f(2) = 3* -1 - 1 = -4

    f(3) = 3* -4 - 1 = -13

    Assim, f(3) é igual a -13.

    Espero ter ajudado.



  • a funcao f(n-1) tem que retornar sempre algo. quando n=0, return 0. quando n for 1,

    3* (1-1)-1 = 3*0-1= -1

    ____________________________________________________________________________________________________________

    n=2

    3 *(-1)-1 = -3-1=-4

    //por que (-1) entre ()?. porque ela retornou -1 na iteracao anterior.

    ____________________________________________________________________________________________________________

    n=3

    3*(-4)-1 = -12-1=-13

    ____________________________________________________________________________________________________________

    n=4

    3*(-13)-1 = -39-1=-40

  • Força Guerreiro!!!!!!