Compruebe si el último elemento de la array es par o impar después de realizar una operación p veces

Dado es un arreglo de n enteros no negativos. La operación es insertar un número en la array que sea estrictamente mayor que la suma actual de la array. Después de realizar la operación p veces, encuentre si el último elemento de la array es par o impar.

Ejemplos: 

Input : arr[] = {2, 3}
        P = 3
Output : EVEN
For p = 1, Array sum = 2 + 3 = 5. 
So, we insert 6.
For p = 2, Array sum = 5 + 6 = 11. 
So, we insert 12.
For p = 3, Array sum = 11 + 12 = 23. 
So, we insert 24 (which is even).

Input : arr[] = {5, 7, 10}
        p = 1
Output : ODD
For p = 1, Array sum  = 5 + 7 + 10 = 22.
So, we insert 23 (which is odd).

Enfoque ingenuo: primero encuentre la suma de la array dada. Esto se puede hacer en un solo bucle. Ahora haga otra array de tamaño P + N. Esta array denotará el elemento que se insertará, y el último elemento será nuestra respuesta requerida. En cualquier paso, si la paridad de la suma de los elementos de la array es «par», la paridad del elemento insertado será «impar».

Enfoque eficiente: digamos que la suma de la array es par, el siguiente elemento insertado será impar. Ahora la suma de la array será impar, por lo que el próximo elemento insertado será par, ahora la suma de la array se volverá impar, por lo que insertaremos un número par, y así sucesivamente. Podemos generalizar que si la suma de la array es par, entonces para P = 1, el último número insertado será impar, de lo contrario será par. 
Ahora, considere el caso en el que la suma de la array es impar. El siguiente elemento insertado será par, ahora la suma de la array se volverá impar, por lo que el siguiente elemento insertado será par, ahora la suma de la array será impar, agregue otro número par y así sucesivamente. Podemos generalizar que el último número insertado siempre es par en este caso.

A continuación se muestra la implementación del enfoque anterior: 

C++

// CPP program to check whether the last
// element of the array is even or odd
// after performing the operation p times.
#include <bits/stdc++.h>
using namespace std;
 
string check_last(int arr[], int n, int p)
{
    int sum = 0;
     
    // sum of the array.
    for (int i = 0; i < n; i++)
        sum = sum + arr[i];
 
    if (p == 1) {
     
        // if sum is even
        if (sum % 2 == 0)
            return "ODD";
        else
            return "EVEN";
    }
    return "EVEN";
}
 
// driver code
int main()
{
    int arr[] = { 5, 7, 10 }, p = 1;
    int n = sizeof(arr) / sizeof(arr[0]);
    cout << check_last(arr, n, p) << endl;   
    return 0;
}

Python3

# Python3 code to check whether the last
# element of the array is even or odd
# after performing the operation p times.
 
def check_last (arr, n, p):
    _sum = 0
     
    # sum of the array.
    for i in range(n):
        _sum = _sum + arr[i]
    if p == 1:
     
        # if sum is even
        if _sum % 2 == 0:
            return "ODD"
        else:
            return "EVEN"
    return "EVEN"
     
# driver code
arr = [5, 7, 10]
p = 1
n = len(arr)
print(check_last (arr, n, p))
 
# This code is contributed by "Abhishek Sharma 44"

Java

// Java program to check whether the last
// element of the array is even or odd
// after performing the operation p times.
import java.util.*;
 
class Even_odd{
 
    public static String check_last(int arr[], int n, int p)
    {
        int sum = 0;
      
        // sum of the array.
        for (int i = 0; i < n; i++)
            sum = sum + arr[i];
  
        if (p == 1) {
      
            // if sum is even
            if (sum % 2 == 0)
                return "ODD";
            else
                return "EVEN";
        }  
        return "EVEN";
    }
     
    public static void main(String[] args)
    {
        int arr[] = { 5, 7, 10 }, p = 1;
        int n = 3;
        System.out.print(check_last(arr, n, p));
    }
}
 
//This code is contributed by rishabh_jain

C#

// C# program to check whether the last
// element of the array is even or odd
// after performing the operation p times.
using System;
 
class GFG {
 
    public static string check_last(int []arr, int n, int p)
    {
        int sum = 0;
     
        // sum of the array.
        for (int i = 0; i < n; i++)
            sum = sum + arr[i];
 
        if (p == 1) {
     
            // if sum is even
            if (sum % 2 == 0)
                return "ODD";
            else
                return "EVEN";
        }
         
        return "EVEN";
    }
     
    // Driver code
    public static void Main()
    {
        int []arr = { 5, 7, 10 };
        int p = 1;
        int n = arr.Length;
         
        Console.WriteLine(check_last(arr, n, p));
    }
}
 
//This code is contributed by vt_m.

PHP

<?php
// PHP program to check whether the last
// element of the array is even or odd
// after performing the operation p times.
 
function check_last($arr, $n, $p)
{
    $sum = 0;
     
    // sum of the array.
    for ( $i = 0; $i < $n; $i++)
        $sum = $sum + $arr[$i];
 
    if ($p == 1) {
     
        // if sum is even
        if ($sum % 2 == 0)
            return "ODD";
        else
            return "EVEN";
    }
    return "EVEN";
}
 
    // Driver Code
    $arr = array(5, 7, 10);
    $p = 1;
    $n = count($arr);
    echo check_last($arr, $n, $p);
 
// This code is contributed by anuj_67.
?>

Javascript

<script>
    // Javascript program to check whether the last
    // element of the array is even or odd
    // after performing the operation p times.
     
    function check_last(arr, n, p)
    {
        let sum = 0;
 
        // sum of the array.
        for (let i = 0; i < n; i++)
            sum = sum + arr[i];
 
        if (p == 1) {
 
            // if sum is even
            if (sum % 2 == 0)
                return "ODD";
            else
                return "EVEN";
        }
        return "EVEN";
    }
     
    let arr = [ 5, 7, 10 ], p = 1;
    let n = arr.length;
    document.write(check_last(arr, n, p));
     
    // This code is contributed by divyesh072019.
</script>
Producción

ODD

Complejidad de tiempo: O (N), ya que estamos usando un bucle para atravesar N veces, por lo que nos costará O (N) tiempo.
Espacio auxiliar: O(1), ya que no estamos utilizando ningún espacio adicional.

Publicación traducida automáticamente

Artículo escrito por Sagar Shukla 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 *