Exponenciação recursiva. Escreva uma função recursiva power( base, expoente ) que, quando chamada, retorna: base ^ expoente

Por exemplo, power( 3, 4 ) = 3 * 3 * 3 * 3. Suponha que expoente seja um inteiro maior ou igual a 1. Dica: a etapa de recursão usaria o relacionamento base ^ expoente = base * base ^ expoente–1 e a condição de término ocorre quando expoente é igual a 1, pois base1 = base

Passo 1

Fala Galerinhaaaa!!! Exercício tranquilo para ficar craque na programação. Vamos juntos resolver essa parada.

Primeiro de tudo, vamos ter que usar recursividade no nosso programa.

Mas calma!!! A recursividade é simplesmente quando uma função chama a si mesma. Parece algo difícil, mas confia, não é.

Como no exercício teremos que calcular a exponenciação, por exemplo, power( 3, 4 ) = 3 * 3 * 3 * 3. Onde 3 é a base e 4 é o expoente. Podemos criar uma função que faça a base * power (base, expoente – 1). Ou seja, a função chamando-a até que o expoente seja igual a 1.

Passo 2

Dito isso, a lógica para nossa função está criada. E ficará com essa cara:

long power( long base, long expoente){

/* se o expoente for igual a 1, retorna a base */

if ( expoente == 1){

return base;

} /* final do if */

else{ /* etapa recursiva */

return base * power( base, expoente - 1);

} /* fim do else */

} /* fim da função */

Lembrando que como vamos trabalhar com potenciação, usaremos o modificador de tipo “long” responsável por mudar o tamanho da variável. Na potenciação dependendo do expoente o resultado costumar ser bem grande, para deixar o programa com um desempenho melhor usaremos o “long”.

Passo 3

Agora precisamos chamar a função dentro do main() e pedir para que o usuário digite a base e o expoente. Feito isso nosso programa estará pronto. E podemos ir para o próximo exercício. Pois esse nós já o matamos rsrsrs!!! Valeu Galera!!! Até o próximo exercício!!!

Resposta

O programa final será: