我正在编写这个函数,我想用整数打印给定列表的所有子列表。这些整数的总和应该等于给定的数字n
。还有一个i
从值 0 开始的帮助变量。列表和每个子列表都是ArrayList
. 所以这个方法现在看起来像这样:
public static void printSublists(ArrayList numbers, ArrayList sublist, int n,
int i) {
if (sublist.sum() == n) {
System.out.println(sublist.toString());
}
else {
for (int j = 0; j < numbers.size(); j++) {
sublist.add(numbers.get(i));
printSublists(numbers, sublist, n, i + 1);
sublist.remove(numbers.get(i));
}
}
}
当然我已经有了方法sum()
。该方法现在执行此操作:假设numbers = [1, 3 , 4]
and n == 4
,那么该方法应该打印[4]
and [1 ,3]
,但它只打印[1, 3]
? 我认为 for 循环必须做到这一点,对吗?如果有人让我走上正轨,我将不胜感激。
更新:我赋予该方法的值:
numbers = [1, 3, 4]
n = 4
i = 0
sublist = []
更新 2:
我忘了说我希望它是递归的:)