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.
ja tenho isto[code]mport java.util.*;
public class Power2{
public static void main(String [] args){
Scanner in = new Scanner(System.in);
int input;
int currentPower = 0;
System.out.println(“Insira um numero:”); input= in.nextInt();
while (input > 0) {
if ((input & 1) == 1) { // se, por exemplo, 10000101 AND 00000001 for igual a 1
// imprime 2^currentPower ou guarda currentPower para imprimir mais tarde
}
currentPower++; // incrementa o currentPower
input = input >> 1; // faz um shift right ao valor binário, por exemplo: 10000101 >> 1 = 01000010
}
}
}[/code]