Dada una array en la que todos sus términos son 0 o 1. Debe indicar que el número representado por un subarreglo a[l..r] es par o impar
Ejemplos:
Input : arr = {1, 1, 0, 1} l = 1, r = 3 Output : odd number represented by arr[l...r] is 101 which 5 in decimal form which is odd Input : arr = {1, 1, 1, 1} l = 0, r = 3 Output : odd
El punto importante a tener en cuenta aquí es que todos los números impares en forma binaria tienen 1 como su bit más a la derecha y todos los números pares tienen 0 como su bit más a la derecha.
La razón es simple: todos los demás bits, excepto el bit más a la derecha, tienen valores pares y la suma de los números pares siempre es par. Ahora, el bit más a la derecha puede tener un valor de 1 o 0, como sabemos par + impar = impar, por lo que cuando el bit más a la derecha es 1, el número es impar y cuando es 0, el número es par.
Entonces, para resolver este problema, solo tenemos que verificar si a[r] es 0 o 1 y, en consecuencia, imprimir impar o par.
Implementación:
C++
// C++ program to find if a subarray // is even or odd. #include<bits/stdc++.h> using namespace std; // prints if subarray is even or odd void checkEVENodd (int arr[], int n, int l, int r) { // if arr[r] = 1 print odd if (arr[r] == 1) cout << "odd" << endl; // if arr[r] = 0 print even else cout << "even" << endl; } // driver code int main() { int arr[] = {1, 1, 0, 1}; int n = sizeof(arr)/sizeof(arr[0]); checkEVENodd (arr, n, 1, 3); return 0; }
Java
// java program to find if a subarray // is even or odd. import java.io.*; class GFG { // prints if subarray is even or odd static void checkEVENodd (int arr[], int n, int l, int r) { // if arr[r] = 1 print odd if (arr[r] == 1) System.out.println( "odd") ; // if arr[r] = 0 print even else System.out.println ( "even") ; } // driver code public static void main (String[] args) { int arr[] = {1, 1, 0, 1}; int n = arr.length; checkEVENodd (arr, n, 1, 3); } } // This article is contributed by vt_m.
Python3
# Python3 program to find if a # subarray is even or odd. # Prints if subarray is even or odd def checkEVENodd (arr, n, l, r): # if arr[r] = 1 print odd if (arr[r] == 1): print("odd") # if arr[r] = 0 print even else: print("even") # Driver code arr = [1, 1, 0, 1] n = len(arr) checkEVENodd (arr, n, 1, 3) # This code is contributed by Anant Agarwal.
C#
// C# program to find if a subarray // is even or odd. using System; class GFG { // prints if subarray is even or odd static void checkEVENodd (int []arr, int n, int l, int r) { // if arr[r] = 1 print odd if (arr[r] == 1) Console.WriteLine( "odd") ; // if arr[r] = 0 print even else Console.WriteLine( "even") ; } // driver code public static void Main() { int []arr = {1, 1, 0, 1}; int n = arr.Length; checkEVENodd (arr, n, 1, 3); } } // This article is contributed by Anant Agarwal.
PHP
<?php // PHP program to find if a subarray // is even or odd. // prints if subarray is even or odd function checkEVENodd ($arr, $n, $l, $r) { // if arr[r] = 1 print odd if ($arr[$r] == 1) echo "odd", "\n"; // if arr[r] = 0 print even else echo "even", "\n"; } // Driver code $arr = array(1, 1, 0, 1); $n = sizeof($arr); checkEVENodd ($arr, $n, 1, 3); // This code is Contributed by Ajit ?>
Javascript
<script> // Javascript program to find // if a subarray is even or odd. // prints if subarray is even or odd function checkEVENodd (arr, n, l, r) { // if arr[r] = 1 print odd if (arr[r] == 1) document.write("odd") ; // if arr[r] = 0 print even else document.write("even") ; } let arr = [1, 1, 0, 1]; let n = arr.length; checkEVENodd (arr, n, 1, 3); </script>
odd
Complejidad de tiempo: O(1)
Complejidad de espacio: O(1)
Este artículo es una contribución de Ayush Jha . Si te gusta GeeksforGeeks y te gustaría contribuir, también puedes escribir un artículo usando write.geeksforgeeks.org o enviar tu artículo por correo a review-team@geeksforgeeks.org. Vea su artículo que aparece en la página principal de GeeksforGeeks y ayude a otros Geeks.
Publicación traducida automáticamente
Artículo escrito por GeeksforGeeks-1 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA