Dada una array arr[] que contiene N números. La tarea es verificar si el AND bit a bit de los N números dados es par o impar.
Ejemplos :
Entrada: arr[] = { 2, 12, 20, 36, 38 }
Salida: Par
Entrada: arr[] = { 3, 9, 17, 13, 15 }
Salida: Impar
Una solución simple es primero encontrar el AND de los N números dados, luego verificar si este AND es par o impar.
Una mejor solución se basa en la manipulación de bits y hechos matemáticos.
- El AND bit a bit de dos números pares cualesquiera es un número par.
- Bitwise AND de dos números impares es un número impar.
- AND bit a bit de un número par y un número impar es un número par.
Con base en los hechos anteriores, se puede deducir que si al menos un número par está presente en la array, el AND bit a bit de toda la array será par, de lo contrario, impar.
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 check if the bitwise AND // of the array elements is even or odd void checkEvenOdd(int arr[], int n) { for (int i = 0; i < n; i++) { // If at least an even element is present // then the bitwise AND of the // array elements will be even if (arr[i] % 2 == 0) { cout << "Even"; return; } } cout << "Odd"; } // Driver code int main() { int arr[] = { 2, 12, 20, 36, 38 }; int n = sizeof(arr) / sizeof(arr[0]); checkEvenOdd(arr, n); return 0; }
Java
// Java implementation of the approach import java.io.*; class GFG { // Function to check if the bitwise AND // of the array elements is even or odd static void checkEvenOdd(int []arr, int n) { for (int i = 0; i < n; i++) { // If at least an even element is present // then the bitwise AND of the // array elements will be even if (arr[i] % 2 == 0) { System.out.print("Even"); return; } } System.out.println("Odd"); } // Driver code public static void main (String[] args) { int []arr = { 2, 12, 20, 36, 38 }; int n = arr.length; checkEvenOdd(arr, n); } } // This code is contributed by @tushil
Python3
# Python3 implementation of the approach # Function to check if the bitwise AND # of the array elements is even or odd def checkEvenOdd(arr, n) : for i in range(n) : # If at least an even element is present # then the bitwise AND of the # array elements will be even if (arr[i] % 2 == 0) : print("Even", end = ""); return; print("Odd", end = ""); # Driver code if __name__ == "__main__" : arr = [ 2, 12, 20, 36, 38 ]; n = len(arr); checkEvenOdd(arr, n); # This code is contributed by AnkitRai01
C#
// C# implementation of the approach using System; class GFG { // Function to check if the bitwise AND // of the array elements is even or odd static void checkEvenOdd(int []arr, int n) { for (int i = 0; i < n; i++) { // If at least an even element is present // then the bitwise AND of the // array elements will be even if (arr[i] % 2 == 0) { Console.Write ("Even"); return; } } Console.Write ("Odd"); } // Driver code static public void Main () { int []arr = { 2, 12, 20, 36, 38 }; int n = arr.Length; checkEvenOdd(arr, n); } } // This code is contributed by ajit..
Javascript
<script> // Javascript implementation of the approach // Function to check if the bitwise AND // of the array elements is even or odd function checkEvenOdd(arr, n) { for (let i = 0; i < n; i++) { // If at least an even element is present // then the bitwise AND of the // array elements will be even if (arr[i] % 2 == 0) { document.write ("Even"); return; } } document.write ("Odd"); } let arr = [ 2, 12, 20, 36, 38 ]; let n = arr.length; checkEvenOdd(arr, n); </script>
Even
Complejidad de tiempo: O(N)
Publicación traducida automáticamente
Artículo escrito por NikhilRathor y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA