如何实现这种java不确定多层循环嵌套 10C

public void test2() {
List list1=new ArrayList<>();
list1.add("0");
list1.add("1");
List list2=new ArrayList<>();
list2.add("0");
list2.add("1");
List list3=new ArrayList<>();
list3.add("0");
list3.add("1");
List list4=new ArrayList<>();
list4.add("0");
list4.add("1");
for (int i=0;i<list1.size();i++){
for(int j=0;j<list2.size();j++){
for (int k=0;k<list3.size();k++){
for(int l=0;l<list4.size();l++){
System.out.println(list1.get(i)+list2.get(j)+list3.get(k)+list4.get(l));
}
}
}
}

}



运行结果:
0000

0001
0010
0011
0100
0101
0110
0111
1000
1001
1010
1011
1100
1101
1110
1111

这个是最终叫老板写的,能达到多层嵌套for循环

public List testMethod(List> list, String str, int i,List result) {
List l = list.get(i);
for (String string : l) {
String str2 = str + string;
if (i != list.size() - 1) {
int j = i + 1;
testMethod(list, str2, j, result);
} else {
result.add(str2);
}
}
return result;
}


13个回答

你想怎么运算呀? 我没看你的思路

weixin_41330798
weixin_41330798 System.out.println(list1.get(i)+list2.get(j)+list3.get(k)+list4.get(l));
2 年多之前 回复
DemoLife
DemoLife 对所有list里面的字符串进行全排列2*2*2*2=16以此类推
2 年多之前 回复

采用多片相连输入代码 就能解决

#include

void main()

{

    int i,j;  
    char a[5]="

$";

for(i=0;i<5;i++)

{

for(j=0;j<5;j++)

printf("%c",a[j]);

printf("\n");

}

}</span>  

for(i=0;i<5;i++)

{

for(j=0;j<=i;j++)

printf("%c",a[j]);

printf("\n");

}

楼上的朋友,人家问的是Java,没问C语言哦

public void test2() {
List list1=new ArrayList<>();
list1.add("0");
list1.add("1");
List list2=new ArrayList<>();
list2.add("0");
list2.add("1");
List list3=new ArrayList<>();
list3.add("0");
list3.add("1");
List list4=new ArrayList<>();
list4.add("0");
list4.add("1");
for (int i=0;i<list1.size();i++){
for(int j=0;j<list2.size();j++){
for (int k=0;k<list3.size();k++){
for(int l=0;l<list4.size();l++){
System.out.println(list1.get(i)+list2.get(j)+list3.get(k)+list4.get(l));
}
}
}
}

先不换行
在第三层循环里在加一行System.out.println( );

类似的是不是可以用 回归函数来解决呢?

二叉树的循环遍历方法,Java实现。利用栈和arraylist

你是不是想实现:生成N位长度所有二进制字符串啊

如果是的话 我写了个代码可以给你参考下
import java.util.Scanner;
public class Main {
static int a[];
public static void main(String []args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt;
a=new int[n+1];
new Main().test(n);
}
public void test(int n){
if(n<1){
for(int i=0;i<a.length-1;i++){
System.out.print(a[i]+" ");
}
System.out.println();
}else{
a[n-1]=0;
test(n-1);
a[n-1]=1;
test(n-1);
}
}
}


共13条数据 1 尾页
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐