SóProvas


ID
2709250
Banca
SUGEP - UFRPE
Órgão
UFRPE
Ano
2018
Provas
Disciplina
Algoritmos e Estrutura de Dados
Assuntos

Considere a função recursiva ‘func’ definida por


func(1) = 1

func(n) = (n - 1) * func(n - 1)


Quais são os valores de func(4) e func(5), respectivamente?

Alternativas
Comentários
  • func(4) = (4-1)*func(3) --> (3-1)*func(2) --> (2-1)*func(1)

    func(1) retorna 1

    func(2) retorna 1

    func(3) retorna 2

    e 2*3 é 6

    func(5) = (5-1)*func(4) 

    Como ja sabemos que func(4) retorna 6 então 4*6 =24

  • func(4) = 3 * func(3)

    func(3) = 2 * func(2)

    func(2) = 1 * func(1)

    func(1) = 1

     

    - Começa o caminha reverso:

    func(2) = 1 * 1 =>  1

    func(3) = 2 * 1 =>  2

    func(4) = 3 * 2 => 6

     

    func(5) = 4 * 6 => 24 

  • func(1) = 1

    ----------------------------------

    func(2) = (2 - 1) * func(2 - 1) - Aqui ele chama a func(1) que é o numero 1

    func(2) = 1 * 1

    func(2) = 1

    ----------------------------------

    func(3) = (3 - 1) * func(3 - 1) - Aqui ele chama a func(2) que é o numero 1

    func(3) = 2 * 1

    func(3) = 2

    ----------------------------------

    func(4) = (4 - 1) * func(4 - 1) - Aqui ele chama a func(3) que é o numero 2

    func(4) = 3 * 2

    func(4) = 6

    ----------------------------------

    func(5) = (5 - 1) * func(5 - 1) - Aqui ele chama a func(4) que é o numero 6

    func(5) = 4 * 6

    func(5) = 24

  • Vamos matar esta no peito por meio de debug.

    func(1) = 1 , por definição do enunciado

    func(2) = (2 – 1)*func(2 – 1) = func(1) = 1

    func(3) = (3 – 1)*func(3 – 1) = 2*func(2) = 2*1 = 2

    func(4) = (4 – 1)*func(4 – 1) = 3*func(3) = 3*2 = 6

    func(5) = (5 – 1)*func(5 – 1) = 4*func(4) = 4*6 = 24

    Portanto, func(4) = 6 e func(5) = 24.

    Obs: A func(n), na forma como foi definida pelo avaliador, nada mais é que (n-1)!, isto é, fatorial de (n-1).

    Resposta: C

  • Força Guerreiro!!!!!!

  • Força Guerreiro!!!!!!