把一个数组里的数组合全部列出,比如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);
}
}
}
}
}