Faça uma função não-recursiva que receba um número inteiro positivo
e retorne o fatorial exponencial desse número. Um fatorial exponencial é um inteiro positivo
elevado à potência de
, que por sua vez é elevado à potência de
e assim em diante. Ou seja:
Passo 1
O enunciado pede uma função não-recursiva que receba um inteiro positivo
e retorne o fatorial exponencial, definido por:
$$n{(n-1){(n-2)\
\cdots^1}}$$
Para isso vamos precisar de um laço de repetição e do operador de potência.
Para isso vamos precisar de um laço de repetição e do operador de potência.
Passo 2
Para evitar recursão, a gente constrói a torre de potência de dentro para fora de forma iterativa. A ideia é manter um acumulador
que começa em 1 (equivalente ao topo da torre) e, em cada passo, eleva o próximo inteiro
ao valor atual de
, estendendo a torre.
Passo 3
Inicializamos
. Em seguida, montamos um loop de
até
, onde em cada iteração fazemos
Assim, quando
Passo 4
Depois de terminar o loop, o valor de
corresponde exatamente ao fatorial exponencial
. Basta retornar esse acumulador.
Resposta
fun fatorialExponencial(n):
resultado = 1
para i de 2 até n:
resultado = pow(i, resultado)
retorne resultado
resultado = 1
para i de 2 até n:
resultado = pow(i, resultado)
retorne resultado