Faça uma função recursiva que receba um número inteiro positivo Ne e retorne o fatorial exponencial desse número. Um fatorial exponencial é um inteiro positivo N elevado à potência de
, que por sua vez é elevado à potência de
e assim em diante. Ou seja,
Passo 1
A questão pede uma função recursiva que calcule o “fatorial exponencial” de um inteiro positivo N, definido como uma torre de potências decrescente:
. Vamos usar recursão e a operação de exponenciação.
Em recursão a gente precisa de dois elementos: base e passo recursivo. A base interrompe a chamada recursiva; o passo aplica a definição recursiva.
Em recursão a gente precisa de dois elementos: base e passo recursivo. A base interrompe a chamada recursiva; o passo aplica a definição recursiva.
Passo 2
A base ocorre quando
. Nesse caso não há mais expoentes abaixo, então definimos:
Passo 3
Para
, a definição diz que primeiro se calcula o fatorial exponencial de
e depois se eleva
a esse resultado. Formalmente:
Passo 4
Com essa definição clara, basta traduzir para a linguagem de programação. No exemplo abaixo usamos Python, mas a ideia é a mesma em qualquer linguagem com recursão e exponenciação.
Passo 5
Aqui está a implementação da função recursiva em Python:
def fatorial_exponencial(n):
if n == 1:
return 1
else:
return n ** fatorial_exponencial(n-1)
if n == 1:
return 1
else:
return n ** fatorial_exponencial(n-1)
Resposta
def fatorial_exponencial(n):
if n == 1:
return 1
else:
return n ** fatorial_exponencial(n-1)
if n == 1:
return 1
else:
return n ** fatorial_exponencial(n-1)