Dada una array de tamaño N. La tarea es encontrar el producto de los valores de todos los posibles subconjuntos no vacíos de la array dada.
Ejemplos:
Entrada: N = 2, arr[] = {3, 7}
Salida: 441
Todos los subconjuntos no vacíos son:
3
7
3, 7
Producto = 3 * 7 * 3 * 7 = 441
Entrada: N = 1, arr[] = {4}
Salida: 4
Enfoque: en una observación cuidadosa se puede deducir que el número de ocurrencias de cada elemento en todos los subconjuntos es 2 N-1 . Por lo tanto, en el producto final, cada elemento de la array se multiplicará por 2 N-1 veces.
Product = a[0]2N-1*a[1]2N-1********a[N-1]2N-1
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ implementation of the approach #include <bits/stdc++.h> using namespace std; // Function to find product of all elements // in all subsets int product(int a[], int n) { int ans = 1; int val = pow(2, n - 1); for (int i = 0; i < n; i++) { ans *= pow(a[i], val); } return ans; } // Driver Code int main() { int n = 2; int a[] = { 3, 7 }; cout << product(a, n); return 0; }
Java
// Java implementation of the approach class GFG { // Function to find product of all elements // in all subsets static int product(int a[], int n) { int ans = 1; int val = (int)Math.pow(2, n - 1); for (int i = 0; i < n; i++) { ans *= (int)Math.pow(a[i], val); } return ans; } // Driver Code public static void main (String[] args) { int n = 2; int a[] = { 3, 7 }; System.out.println(product(a, n)); } } // This code is contributed by AnkitRai01
Python3
# Python3 implementation of the approach # Function to find product of # all elements in all subsets def product(a, n): ans = 1 val = pow(2, n - 1) for i in range(n): ans *= pow(a[i], val) return ans # Driver Code n = 2 a = [3, 7] print(product(a, n)) # This code is contributed by mohit kumar
C#
// C# implementation of the approach using System; class GFG { // Function to find product of all elements // in all subsets static int product(int []a, int n) { int ans = 1; int val = (int)Math.Pow(2, n - 1); for (int i = 0; i < n; i++) { ans *= (int)Math.Pow(a[i], val); } return ans; } // Driver Code public static void Main () { int n = 2; int []a = { 3, 7 }; Console.WriteLine(product(a, n)); } } // This code is contributed by anuj_67..
Javascript
<script> // Javascript implementation of the approach // Function to find product of all elements // in all subsets function product(a, n) { var ans = 1; var val = Math.pow(2, n - 1); for (var i = 0; i < n; i++) { ans *= Math.pow(a[i], val); } return ans; } // Driver Code var n = 2; a = [ 3, 7 ] document.write(product(a, n)); </script>
Producción:
441
Complejidad de tiempo: O(N)
Espacio Auxiliar: O(1)