打印二进制排列列表

Smi*_*tty 7 java algorithm

我想要做的是打印所有可能的二进制数n位数.换句话说,使用4位数字:

0001
0010
0100
1000
Run Code Online (Sandbox Code Playgroud)

..等等

说实话,我不知道从哪里开始这个(除了我想我需要使用一个循环,可能还有一个数组)所以任何正确方向的指针都会受到赞赏.

ebo*_*oix 16

也许你可以使用递归算法:

public void printBin(String soFar, int iterations) {
    if(iterations == 0) {
        System.out.println(soFar);
    }
    else {
        printBin(soFar + "0", iterations - 1);
        printBin(soFar + "1", iterations - 1);
    }
}
Run Code Online (Sandbox Code Playgroud)

你会这样执行:

printBin("", 4);
Run Code Online (Sandbox Code Playgroud)

那会给你所有可能的4位二进制数字.

希望这有帮助!


Oli*_*rth 7

对于n比特二进制数,有2 ^ n"排列".您只需要将整数从0循环到(1<<n)-1,然后将每个整数转换为二进制.


zie*_*mer 5

for(int i=0; i < 128; i++){
  System.out.println(Integer.toBinaryString(i));
}
Run Code Online (Sandbox Code Playgroud)

将最大值调整为您想要的最高水平。

如果需要填充的0,那么今天还有另一个问题: 在Java中以二进制零填充等于零(“ 0”)的二进制字符串