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.
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.
funcaomultiplicar(inteiroa,inteirob)retornainteirointeiroproduto=0;seb<>0entaofacaproduto=multiplica(a,b-1);fimseretornaproduto;fimfuncaoexp(inteirobase,inteiroexpoente)retornainteirointeirototal=1;seexpoente<>0entaofacatotal=multiplica(expoente(base,expoente-1),base);fimseretornetotal;fimPorgramaPrincipalinteirobase,inteiroexpoente;escreva("digite a base");leia(base);escreva("digete o expoente");leia(expoente);escreva("o resultado e : ",expoente(base,expoente);