把一个数组里的数组合全部列出,比如1 2 列出来为1,2,12,21
具体代码如下:
package com.lcq.test;
import java.util.Arrays;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;
public class MyTest {
public static void main(String[] args) {
String[] array = new String[] { "1", "2", "3","4" };
listAll(Arrays.asList(array), "");
}
public static void listAll(List candidate, String prefix) {
if (candidate.isEmpty()) {
System.out.println(prefix);
}
for (int i = 0; i < candidate.size(); i++) {
List temp = new LinkedList(candidate);
listAll(temp, prefix + temp.remove(i));
}
}
}
===========================================================
利用筛选法查找100以内的素数。
public class Test{
public static void main(String[] args){
int a[101],i,j;
for(i = 1;i < 101;i++){//先初始化整个数组,使之全部为1
a[i] = 1;
}
for(i=2;i<101;i++){
if(a[i] != 0){
for(j = i +1;j<101){
if(j % i == 0){
a[j] = 0;
j = j+1;
}
}
for(i=2;i<101;i++){
if(a[i] !=0)
System.out.println(i);
}
}
}
}
}
本文介绍了一种通过递归方式枚举数组中所有可能的数字组合的方法,并提供了一个具体的实现示例。此外,还展示了如何使用筛法来找出100以内的所有素数,帮助读者理解素数的定义及其高效查找方法。
5万+

被折叠的 条评论
为什么被折叠?



