public class Subset {
public static int PROD = 12;
public static void main(String[] args) {
int arr[] = { 1, 3, 1, 2, 2, 1, 2, 4 };
boolean visited[] = new boolean[arr.length];
function(arr, 0, 1, visited);
}
public static void function(int a[], int index, int prod, boolean visited[]) {
if (prod == PROD) {
print(a, visited);
}
if (index > a.length - 1)
return;
function(a, index + 1, prod, visited);
visited[index] = true;
function(a, index + 1, prod * a[index], visited);
visited[index] = false;
}
private static void print(int[] a, boolean[] visited) {
for (int i = 0; i < a.length; i++) {
if (visited[i] == true) {
System.out.print(a[i] + " ");
}
}
System.out.println();
}
}
興味深い問題。問題を解決するためのコーディングの試みはどのように見えますか? –
Stackで使用しましたが、もっと多くの要素に行くとスタックアップし、ArrayIndexOutOfBounds例外で私を取得します。 – ARP
@ARPコードを投稿すると、人々があなたを助けることができます。 –