Ir ao conteúdo
  • Cadastre-se

Exponenciação somente com soma.


Posts recomendados

Preciso fazer um programa, em pascal, que efetue uma exponenciação somente com somas, ou seja, sem usar sqr, power e multiplicações.

Não to conseguindo pensar em nenhum tipo de loop para fazer isso. A ideia eu tenho, que a exponenciação é sempre o dobro do dobro, porém, nas consigo colocar isso em um código. Quem puder me ajudar ai eu ficarei muito grato =D.

 

o que eu fiz até agora:

 

program expo;var    i, j, num, exp, result: integer;begin    write('Digite um numero e a quanto quer eleva-lo, respectivamente.');    readln(num, exp);        result:= 0    for i:= 1  to exp do        result:= num + num + result;    writeln(result);readlnend.
Link para o comentário
Compartilhar em outros sites

@

 

 

Basta montar dois laços aninhados. Um para fazer o número de repetições necessárias de acordo com o valor do expoente e ir recebendo o valor total da soma, e um mais interno para acumular os valores intermediários. Suponha o seguinte:

 

83 = 8 * 8 * 8 = 512

 

1a etapa: 8 * 8 = 8 + 8 + 8 + 8 + 8 + 8 + 8 + 8 = 64

 

Este valor de 64 é o que chamo de valor intermediário. Esse será calculado na primeira iteração.

 

2a etapa, repete-se o processo: 64 * 8 = 64 + 64 + 64 + 64 + 64 + 64 + 64 + 64 = 512 (valor final)

 

Essencialmente, o laço mais externo faria duas iterações: de 1 até Expoente - 1. Isso porque estaria considerando o valor inicial (= base), ou seja, 8.

 

 

* Se considerar o valor inicial da soma como 1, poderia ir normalmente de 1 até Expoente. Seria até mais apropriado, já que se o cara entrar com expoente 0, o resultado será 1.

 

 

 

LNW

  • Curtir 2
Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...