Compruebe en una array binaria que el número representado por un subarreglo sea par o impar

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>
Producción

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

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *