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>
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