我需要创建一个输出所有可能的二进制组合的函数(2 ^ 8 = = 256个不同的8位序列.).我真的很难过.我必须使用嵌套循环来做,我不知道如何去做.以下是我到目前为止所尝试的内容.有人告诉我,我可以使用8个嵌套循环编写这个程序,每个循环从0到1; 此外,我可以尝试使用位操作运算符.
虽然我下面的内容显然是错误的,但我尽力表明我至少尝试过这个.我还需要在每个结束括号后添加新行,以分隔输出.
输出应如下所示:
00000000
00000001
00000010
00000011
00000100
...
11111110
11111111
public static void outputBinary(){
int[][][][][][][][] num = new int[2][2][2][2][2][2][2][2];
for (int i = 0; i < 2; i++){
for (int j = 0; j < 2; j++){
for (int k = 0; k < 2; k++){
for (int l = 0; l < 2; l++){
for (int m = 0; m < 2; m++){
for (int n = 0; n < 2; n++){
for (int o = 0; o < 2; o++){
for (int p = 0; p < 2; p++){
System.out.print(num[i][j][k][l][m][n][o][p]);
} }}}}}}}
Run Code Online (Sandbox Code Playgroud)
}
谢谢你的期待.
不需要阵列.以下是对代码的轻微修改,将输出所有排列.
for (int i = 0; i < 2; i++){
for (int j = 0; j < 2; j++){
for (int k = 0; k < 2; k++){
for (int l = 0; l < 2; l++){
for (int m = 0; m < 2; m++){
for (int n = 0; n < 2; n++){
for (int o = 0; o < 2; o++){
for (int p = 0; p < 2; p++){
System.out.println("" + i + j + k + l + m + n + o + p);
}
}
}
}
}
}
}
}
Run Code Online (Sandbox Code Playgroud)
你必须使用嵌套循环吗?因为当你简单地利用从0到255的所有数字的二进制表示覆盖每个排列的事实时,这很简单.
for (int i=0; i<256; i++) {
System.out.println(Integer.toBinaryString(i));
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11291 次 |
| 最近记录: |