Dada una array arr[] de longitud N , la tarea es contar el número de pares (X, Y) de modo que X Y sea par y contar el número de pares de modo que X Y sea impar.
Ejemplos:
Entrada: arr[] = {2, 3, 4, 5}
Salida:
6
6
Explicación: (2, 3), (2, 4), (2, 5), (4, 2), (4, 3) y (4, 5) son los pares con valores pares
y (3, 2), (3, 4), (3, 5), (5, 2), (5, 3) y (5, 4) son los pares con valores impares.
Entrada: arr[] = {10, 11, 20, 60, 70}
Salida:
16
4
Explicación: (10, 11), (10, 20), (10, 60), (10, 70), (20, 10), (20, 11), (20, 60), (20, 70), (60, 10), (60, 11), (60, 20), (60, 70), (70, 10) , (70, 11), (70, 20), (70, 60) son los pares con valores pares y (11, 10), (11, 20), (11, 60), (11, 70) son los pares con valores impares.
Enfoque ingenuo: calcule las potencias para cada par posible y descubra si el valor calculado es par o impar.
Enfoque eficiente: cuente los elementos pares e impares en la array y luego use el concepto pow (par, cualquier elemento excepto él mismo) es par y pow (impar, cualquier elemento excepto él mismo) es impar.
Entonces, el número de pares (X, Y) son,
- pow(X, Y) es par = (recuento de número par * (n – 1))
- pow(X, Y) es impar = (recuento de número impar * (n – 1))
A continuación se muestra la implementación del enfoque anterior:
C++
// C++ implementation of the approach #include <iostream> using namespace std; // Function to find and print the // required count of pairs void countPairs(int arr[], int n) { // Find the count of even and // odd elements in the array int even = 0, odd = 0; for (int i = 0; i < n; i++) { if (arr[i] % 2 == 0) even++; else odd++; } // Print the required count of pairs cout << (even) * (n - 1) << endl; cout << (odd) * (n - 1) << endl; } // Driver code int main() { int arr[] = { 2, 3, 4, 5 }; int n = sizeof(arr) / sizeof(arr[0]); countPairs(arr, n); return 0; }
Java
// Java implementation of the approach class GFG { // Function to find and print the // required count of pairs static void countPairs(int arr[], int n) { // Find the count of even and // odd elements in the array int even = 0, odd = 0; for (int i = 0; i < n; i++) { if (arr[i] % 2 == 0) even++; else odd++; } // Print the required count of pairs System.out.println((even) * (n - 1)); System.out.println((odd) * (n - 1)); } // Driver code public static void main(String args[]) { int arr[] = { 2, 3, 4, 5 }; int n = arr.length; countPairs(arr, n); } } // This code is contributed by ANKITUMAR34
Python3
# Python3 implementation of the approach # Function to find and print the # required count of pairs def countPairs(arr, n): # Find the count of even and # odd elements in the array odd = 0 even = 0 for i in range(n): if (arr[i] % 2 == 0): even += 1 else: odd += 1 # Count the number of odd pairs odd_pairs = odd*(n-1) # Count the number of even pairs even_pairs = even*(n-1) print(odd_pairs) print(even_pairs) # Driver code if __name__ == '__main__': arr = [2, 3, 4, 5] n = len(arr) countPairs(arr, n)
C#
// C# implementation of the approach using System; class GFG { // Function to find and print the // required count of pairs static void countPairs(int []arr, int n) { // Find the count of even and // odd elements in the array int even = 0, odd = 0; for (int i = 0; i < n; i++) { if (arr[i] % 2 == 0) even++; else odd++; } // Print the required count of pairs Console.WriteLine((even) * (n - 1)); Console.WriteLine((odd) * (n - 1)); } // Driver code public static void Main() { int []arr = { 2, 3, 4, 5 }; int n = arr.Length; countPairs(arr, n); } } // This code is contributed by AnkitRai01
Javascript
<script> // Javascript implementation of the approach // Function to find and print the // required count of pairs function countPairs(arr, n) { // Find the count of even and // odd elements in the array let even = 0, odd = 0; for (let i = 0; i < n; i++) { if (arr[i] % 2 == 0) even++; else odd++; } // Print the required count of pairs document.write((even) * (n - 1) + "</br>"); document.write((odd) * (n - 1)); } let arr = [ 2, 3, 4, 5 ]; let n = arr.length; countPairs(arr, n); </script>
6 6
Complejidad de tiempo: O(n)
Espacio Auxiliar: O(1)
Publicación traducida automáticamente
Artículo escrito por ANKITKUMAR34 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA