我正在研究一個涉及「動態規劃」的項目,並對這個小問題有所瞭解,請大家幫忙。Java中一個數字的所有二進制組合列表
想我拿4作爲輸入,我要顯示這樣的:0000〜1111
但是,如果我輸入5,我要顯示這樣的:00000到11111等等。
由於提前,
編輯:請不要張貼問我的代碼。這不是一個家庭作業問題,我不需要任何代碼,只要告訴我它的邏輯,我會很高興。
EDIT2:WTH與Stackoverflow一起發生,我問你們任何人爲我寫代碼嗎?我想要那個沮喪的人加入它。如果我無法尋求幫助,這個論壇的重點是什麼?
與我分享邏輯。我們可以討論,我不需要這樣的代碼。
EDIT3:在這裏,我發佈了我試過的代碼。我希望這個「滿意」的所有人都認爲我沒有嘗試過任何東西。
import java.util.ArrayList;
公共類RegularInvestigator {
公共的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;
}
私人ArrayList的removeElementAtIndex(ArrayList的飛行,INT位置){
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:謝謝phoxis,PengOne,傑裏棺材oliholz您的寶貴答案:)
你需要顯示所有組合從0000到1111或僅僅指剛0000和1111 – gmhk
共享代碼,以及檢查它 – gmhk
@harigm,從0000到1111的所有組合輸入爲4 – Shankar