Galera, teve um desafio na minha na faculdade onde ninguém conseguiu fazer…
Construa um sub-algoritmo que recebe uma base e um expoente, e recursivamente calcula e
retorna o valor de Base Expodencial . OBS: Você não pode utilizar o operador de ‘*’.
Ao final, esses sub-algoritmos devem ser chamados pela função principal.
OBS: Ainda estou no 1 primeiro semestre
Aqui está a ideia.
Uma multiplicação é uma soma recursiva de valores iguais (3x3 = 3+3+3)
Uma exponeciação é um produto recursivo de valores iguais (3³ = 333), que nada mais é também que uma multiplicação de multiplicação (ou uma soma recursiva de uma soma recursiva de valores iguais).
Como não podemos usar multiplicação diretamente, devemos utilizar somente soma para chegar ao resultado final.
Lembrando que esses algoritmos não está em portugol oficial, eu fiz do jeito que eu me lembrava. Faça vc ai do jeito correto.
funcao multiplicar ( inteiro a, inteiro b) retorna inteiro
inteiro produto = 0;
se b <> 0 entao faca
produto = multiplica ( a , b -1 );
fimse
retorna produto;
fim
funcao exp ( inteiro base, inteiro expoente ) retorna inteiro
inteiro total = 1;
se expoente <> 0 entao faca
total = multiplica ( expoente( base,expoente -1 ) , base );
fimse
retorne total;
fim
Porgrama Principal
inteiro base, inteiro expoente;
escreva ("digite a base");
leia (base);
escreva ("digete o expoente");
leia (expoente);
escreva ("o resultado e : " , expoente ( base, expoente );