与えられたリストのすべてのサブリストを整数で出力したいこの関数を書いています。これらの整数の合計は、指定された数に等しくなければなりません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]
とn == 4
、メソッドは[4]
and[1 ,3]
を出力する必要がありますが、出力するのは[1, 3]
?forループはそのトリックを正しく実行する必要があると思いますか?誰かが私を正しい軌道に乗せてくれれば幸いです。
更新:メソッドに与える値:
numbers = [1, 3, 4]
n = 4
i = 0
sublist = []
更新2:
再帰的にしたいと言うのを忘れました:)