匿名用户
1级
2017-09-27 回答
public class MyClass {
public static void main(String[] args) {
System.out.println(">>> result count:" + method(6, 3));
}
public static int method(int n, int k) {
List> list = new ArrayList<>();
for (int i = 0; i
if (i == 0) {
for (int j = 1; j
List li = new ArrayList<>();
li.add(j);
list.add(li);
}
continue;
}
List> listNew = new ArrayList<>();
for (List integers : list) {
for (int j = integers.get(integers.size() - 1); j
List li = new ArrayList<>();
li.addAll(integers);
li.add(j);
listNew.add(li);
if (i + 1 == k) {
int res = 0;
for (Integer integer : li) {
res += integer;
}
if (res != n) {
listNew.remove(li);
}
}
}
}
list.clear();
list.addAll(listNew);
}
for (List integers : list) {
for (Integer integer : integers) {
System.out.print(integer + "\t");
}
System.out.println();
}
return list.size();
}
}