Implementar a função EXP com as seguintes características:
Utiliza a característica recursiva da exponenciação:
i. Baseexp
base.baseexp-1,
ii. Baseexp
,
Utiliza a característica recursiva da exponenciação:
i. Baseexp
ii. Baseexp
Passo 1
Beleza, então o enunciado pede pra gente implementar uma função chamada
EXP
que receba dois parâmetros, base
e exp
(expoente), e devolva o valor demas fazendo isso de forma recursiva.
Conteúdo: recursão em funções matemáticas.
O que vamos precisar:
- Saber que
- Usar a definição recursiva
Passo 2
Definindo o caso base da recursão.
Em algoritmos recursivos, sempre precisamos de uma condição que faça a função parar de chamar a si mesma. Aqui sabemos que, por definição matemática,
Em algoritmos recursivos, sempre precisamos de uma condição que faça a função parar de chamar a si mesma. Aqui sabemos que, por definição matemática,
Logo, se o expoente
exp
for igual a zero, a função deve imediatamente retornar 1, sem chamar ela própria de novo.Passo 3
Definindo o caso recursivo.
Quando
Quando
exp > 0
, a gente aplica a regraTraduzindo pra código, isso vira: chamar
EXP(base, exp-1)
e multiplicar o resultado por base
. Cada chamada vai diminuindo o expoente até chegar em zero (caso base).Passo 4
Escrevendo o pseudocódigo completo (bem estilo “amigo explicando”):
função EXP(base, exp)
se exp == 0 então
retorna 1 // caso base: base^0 = 1
senão
// chama a si mesma com exp-1 e multiplica por base
retorna base * EXP(base, exp - 1)
Resposta
A implementação recursiva da função EXP, que calcula
, é:
função EXP(base, exp)
se exp == 0 então
retorna 1
senão
retorna base * EXP(base, exp - 1)