Pograma que gere potencia de um numero

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!

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

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

valeu!

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

Alguma sugestao para começar o codigo?[/quote]

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

[code]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[/code]

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

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?