一尘不染

Java中数字的所有二进制组合列表

algorithm

我正在从事一个涉及“动态编程”的项目,对这个琐碎的事情感到震惊,请帮忙。

假设我将4作为输入,我想显示类似:0000到1111

但是,如果我输入5,则要显示为:00000至11111,依此类推。

提前致谢,

编辑 :请不要发布询问我的代码。这不是一个家庭作业问题,我不需要任何代码,只需告诉我它的逻辑即可,我会很高兴。

EDIT2
:Stackoverflow正在发生WTH,我是否要求任何人为我编写代码?我希望投票否决的人投票赞成。如果我不能寻求帮助,这个论坛有什么意义?

与我分享逻辑。我们可以讨论,而我不需要代码。

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 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 :谢谢phoxis,PengOne,Jerry Coffin和oliholz的宝贵回答:)


阅读 341

收藏
2020-07-28

共1个答案

一尘不染

  • 获取输入 n
  • 从计数i=0(2^n) - 1
  • 对于ibitmask的每个值,i并显示。
2020-07-28