Pograma que gere potencia de um numero

4 respostas
Z

Ola a todos! eu quero um programa que lê um valor positivo e escreve a decomposição desse valor em somas de potências de 2, por ordem decrescente. Considere que o valor lido é inferior a 2^31.
Algo do tipo :
Valor ? 45
45 = 2^5 + 2^3 + 2^2 + 2^0

Nao posso usar metodos das classes Arrays e Math do package java.lang.

Alguma sugestao para começar o codigo?

valeu!

4 Respostas

davidbuzatto

Você pode começar transformando a base do seu número para binário.
Com a representação binária do número, ai você consegue montar a expressão o que você precisa.

[]'s

Z

Isso vai criar um codigo enorme, nao ha maneira mais facil de fazer isso?

valeu!

InicianteJavaHenriqu
Nao posso usar metodos das classes Arrays e Math do package java.lang.

Alguma sugestao para começar o codigo?

Para isto você pode codificar e adaptar este meu exemplo:

algoritmo "exponenciacao"
// Autor : Henrique
// Data : 07/11/2011
var
cont, aux, a, b: inteiro

funcao exponenciacao(a, b: inteiro): inteiro
inicio
      cont<-0
      aux<-a
      enquanto (cont<=(b-2)) faca
           aux<-aux*a
           cont<-cont+1
      fimenquanto
      retorne aux
fimfuncao

inicio
      escreva("Digite o valor da base : ")
      leia(a)
      escreva("Digite um valor do expoente: ")
      leia(b)
      se(b=0) entao
           escreva(a, " elevado a 0 = 1")
      senao
           se(b=1) entao
                escreva(a, " elevado a 1 = ", a)
           senao
                aux:=exponenciacao(a, b)
                escreval(a, " elevado a ", b, " = ", aux)
           fimse
      fimse
fimalgoritmo

Depois é só você fazer a sua decomposição de potências de 2. :D

Z

o problema e : como e que eu arranjo uma formula que fique bem nesse codigo que me faça a decomposiçao de potencias de 2?

Criado 7 de novembro de 2011
Ultima resposta 8 de nov. de 2011
Respostas 4
Participantes 3