Faça uma função não-recursiva que receba um número inteiro positivo n e retorne o fatorial exponencial desse número. Um fatorial exponencial é um inteiro positivo n elevado à potência de n-1, que por sua vez é elevado à potência de n-2 e assim em diante. Ou seja:
n^(n-1)^(n-2) cdots

Passo 1

O enunciado pede uma função não-recursiva que receba um inteiro positivo n 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.

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 resu que começa em 1 (equivalente ao topo da torre) e, em cada passo, eleva o próximo inteiro i ao valor atual de resu, estendendo a torre.

Passo 3

Inicializamos resu. Em seguida, montamos um loop de i = 2 até n, onde em cada iteração fazemos
resu
Assim, quando i=2 temos resu, depois i=3 faz resu, e assim por diante até i=n.

Passo 4

Depois de terminar o loop, o valor de resu corresponde exatamente ao fatorial exponencial n^(n-1)^dots^1. Basta retornar esse acumulador.

Resposta

fun fatorialExponencial(n):
resultado = 1
para i de 2 até n:
resultado = pow(i, resultado)
retorne resultado

Exercícios relacionados