package com.zhanglei.baotaher;
import java.util.List;
import java.util.ArrayList;
public class Test {
public static void main (String []args) {
List<Integer> list = new ArrayList<Integer>();
list.add(3);
list.add(2);
list.add(4);
list.add(3);
list.add(1);
result(0,list,new ArrayList<Integer>(),7);
}
public static int total (List<Integer> list) {
int sum = 0;
for (int i = 0;i < list.size();i++ ) {
sum = sum + list.get(i);
}
return sum;
}
public static void print (List<Integer> list) {
for (int i = 0;i < list.size();i++) {
System.out.print(list.get(i)+" ");
}
System.out.println();
}
public static void result (int i,List<Integer> list,List<Integer> list2,int sum) {
if (i >= list.size ()) {
if (total(list2) == sum) {
print (list2);
}
}else {
list2.add(list.get(i));
result(i+1,list,list2,sum);
list2.remove(list2.size()-1);
result(i+1,list,list2,sum);
}
}
}
求 3 2 4 3 1五个数中任意几个和为7的所有的组合。
运行的结果是:
3 4
3 3 1
2 4 1
4 3