Lista de todas las combinaciones binarias para un número en Java
Estoy trabajando en un proyecto que involucra "Programación dinámica" y estoy impresionado con esta cosa trivial, por favor ayuda.
Supongo que tomo 4 como entrada, quiero mostrar algo como: 0000 a 1111
Pero, si ingreso 5, quiero mostrar como: 00000 a 11111 y así sucesivamente.
Gracias por adelantado
EDITA: No publiques pidiéndome el código. Este no es un problema de tarea y no necesito ningún código, solo dígame la lógica y estaré feliz.
EDIT2: WTH está sucediendo con Stackoverflow, ¿les pedí a alguno de ustedes que escribieran código por mí? Quiero que la persona que votó negativamente lo vote a favor. ¿Qué sentido tiene este foro si no puedo pedir ayuda?
Comparta la lógica conmigo. Podemos discutir y no necesito el código para esto.
EDIT3: Aquí estoy publicando el código que probé. Espero que esto "SATISFAGA" a todas las personas que pensaban que no había probado nada.
import java.util.ArrayList;
public class RegularInvestigator
public ArrayList createCombinations (ArrayList listOfFlightNumbers)
ArrayList<String> result = new ArrayList<String>();
for(int i = 1; i < listOfFlightNumbers.size(); i++) {
String binaryEqvivalent = Integer.toBinaryString(i);System.out.println(binaryEqvivalent);
String element = "";
for(int j = 0; j < binaryEqvivalent.length(); j++)
if(binaryEqvivalent.charAt(j) == '1')
element += listOfFlightNumbers + " ";
result.add(element.substring(0, element.length() - 1));
}
return result;
}
private String getContent(ArrayList<String> flight) {
String temp = "";
for(int i = 0; i < flight.size() - 1; i++) temp += flight.get(i) + " ";
temp += flight.get(flight.size() - 1);
return temp;
}
private ArrayList removeElementAtIndex (ArrayList flight, int position)
ArrayList<String> res = new ArrayList<String>();
for(int i = 0; i < flight.size(); i++) {
if(i != position) res.add(flight.get(i));
}
return res;
}}
EDIT4: Gracias phoxis, PengOne, Jerry Coffin y oliholz por sus valiosas respuestas:)