public class Test01 {
private int total = 0;
private ArrayList<String> arrangeList = new ArrayList<String>();
// public static void main(String[] args) {
// int sum = 0;
// for (int i = 1; i <= 100; i++) {
// if(i%2!=0){
// sum+=i;
// }
// }
// System.out.println(sum);
// }
public static void main(String[] args) {
String list[] = { "1", "2", "2", "4", "5" };
Test01 ts = new Test01();
ts.perm(list, 0, list.length-1);
for (int i = 0; i < ts.getArrangeList().size(); i++) {
System.out.println(ts.getArrangeList().get(i));
}
System.out.println("total:" + ts.total);
}
private ArrayList<String> getArrangeList() {
return arrangeList;
}
private void perm(String[] list, int k, int m) {
// TODO Auto-generated method stub
if (k > m) {
StringBuffer sb = new StringBuffer();
if(list[2]!="4" && !(list[0]=="4" && list[1]=="5") && !(list[3]=="4" && list[4]=="5")){
for (int i = 0; i <= m; i++) {
sb.append(list[i]).append(",");
}
if (sb.length()>0) {
sb.setLength(sb.length()-1);
}
arrangeList.add(sb.toString());
total++;
}
} else {
for (int i = k; i <= m; i++) {
swap(list, k, i);
perm(list, k + 1, m);
swap(list, k, i);
}
}
}
private void swap(String[] list, int k, int i) {
// TODO Auto-generated method stub
String c3 = list[k];
list[k] = list[i];
list[i] = c3;
}
}
运行结果:
1,2,2,5,4
1,2,5,4,2
1,2,5,2,4
1,2,2,5,4
1,2,5,4,2
1,2,5,2,4
1,4,2,2,5
1,4,2,5,2
1,4,2,2,5
1,4,2,5,2
1,4,5,2,2
1,4,5,2,2
1,5,2,4,2
1,5,2,2,4
1,5,2,4,2
1,5,2,2,4
2,1,2,5,4
2,1,5,4,2
2,1,5,2,4
2,2,1,5,4
2,2,5,4,1
2,2,5,1,4
2,4,2,1,5
2,4,2,5,1
2,4,1,2,5
2,4,1,5,2
2,4,5,1,2
2,4,5,2,1
2,5,2,4,1
2,5,2,1,4
2,5,1,4,2
2,5,1,2,4
2,2,1,5,4
2,2,5,4,1
2,2,5,1,4
2,1,2,5,4
2,1,5,4,2
2,1,5,2,4
2,4,1,2,5
2,4,1,5,2
2,4,2,1,5
2,4,2,5,1
2,4,5,2,1
2,4,5,1,2
2,5,1,4,2
2,5,1,2,4
2,5,2,4,1
2,5,2,1,4
4,2,2,1,5
4,2,2,5,1
4,2,1,2,5
4,2,1,5,2
4,2,5,1,2
4,2,5,2,1
4,2,2,1,5
4,2,2,5,1
4,2,1,2,5
4,2,1,5,2
4,2,5,1,2
4,2,5,2,1
4,1,2,2,5
4,1,2,5,2
4,1,2,2,5
4,1,2,5,2
4,1,5,2,2
4,1,5,2,2
5,2,2,4,1
5,2,2,1,4
5,2,1,4,2
5,2,1,2,4
5,2,2,4,1
5,2,2,1,4
5,2,1,4,2
5,2,1,2,4
5,4,2,2,1
5,4,2,1,2
5,4,2,2,1
5,4,2,1,2
5,4,1,2,2
5,4,1,2,2
5,1,2,4,2
5,1,2,2,4
5,1,2,4,2
5,1,2,2,4
total:84
速度给分,速度采纳
少了个3,自己加进去
追问思路呢?
追答采纳后给思路,不解释