Compruebe si la suma de la array dada se puede reducir a 0 reduciendo los elementos de la array en K

Dada una array arr[] que consta de N enteros y un entero K, la tarea es verificar si la suma de la array se puede reducir a 0 restando K elementos de la array cualquier cantidad de veces.

Ejemplos:

Entrada: arr[ ]= {-3, 2, -1, 5, 1}, K=2
Salida: “Sí”
Explicación: 
La suma de la array es 4. Por lo tanto, disminuir dos elementos en cualquier índice por K( = 2 ), hace que la suma de la array sea 0.
Entrada: arr[ ]= {1, -6, 2, 2}, K=1
Salida: “No”

Enfoque: siga los pasos a continuación para resolver el problema:

  1. Recorre la array y calcula la suma de la array dada .
  2. Según el valor de la suma , se dan los siguientes casos:
    1. Si suma = 0: No se requiere ninguna operación. Por lo tanto, la respuesta es “Sí”.
    2. Si sum > 0: Sum se puede reducir a 0 solo si sum es un múltiplo de K . Si la suma no es un múltiplo de K , escriba «No». De lo contrario, escriba «Sí» .
    3. Si la suma < 0: simplemente escriba «No» .

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

C++

// C++ program for the above approach
#include <bits/stdc++.h>
using namespace std;
 
// Function to check if the
// sum can be made 0 or not
int sumzero(int arr[], int N, int K)
{
    // Stores sum of array elements
    int sum = 0;
 
    // Traverse the array
    for (int i = 0; i < N; i++) {
 
        sum += arr[i];
    }
 
    if (sum == 0)
        cout << "Yes";
 
    else if (sum > 0) {
 
        if (sum % K == 0)
            cout << "Yes";
 
        else
            cout << "No";
    }
 
    else
        cout << "No";
    return 0;
}
 
// Driver Code
int main()
{
    int K, N;
 
    // Given array arr[]
    int arr1[] = { 1, -6, 2, 2 };
    K = 1;
    N = sizeof(arr1) / sizeof(arr1[0]);
 
    sumzero(arr1, N, K);
 
    return 0;
}

Java

// Java program for the above approach
 
import java.util.*;
 
class GFG{
 
// Function to check if the
// sum can be made 0 or not
static int sumzero(int arr[], int N, int K)
{
    // Stores sum of array elements
    int sum = 0;
 
    // Traverse the array
    for (int i = 0; i < N; i++) {
 
        sum += arr[i];
    }
 
    if (sum == 0)
        System.out.print("Yes");
 
    else if (sum > 0) {
 
        if (sum % K == 0)
            System.out.print("Yes");
 
        else
            System.out.print("No");
    }
 
    else
        System.out.print("No");
    return 0;
}
 
// Driver Code
public static void main(String[] args)
{
    int K, N;
 
    // Given array arr[]
    int arr1[] = { 1, -6, 2, 2 };
    K = 1;
    N = arr1.length;
 
    sumzero(arr1, N, K);
 
}
}
 
// This code is contributed by 29AjayKumar

Python3

# Python3 program for the above approach
 
# Function to check if the
# sum can be made 0 or not
def sumzero(arr, N, K) :
     
    # Stores sum of array elements
    sum = 0;
 
    # Traverse the array
    for i in range(N) :
        sum += arr[i];
    if (sum == 0) :
        print("Yes");
    elif (sum > 0) :
        if (sum % K == 0) :
            print("Yes");
        else :
            print("No");
    else :
        print("No");
 
# Driver Code
if __name__ == "__main__" :
 
    # Given array arr[]
    arr1 = [ 1, -6, 2, 2 ];
     
    K = 1;
    N = len(arr1);
 
    sumzero(arr1, N, K);
 
    # This code is contributed by AnkThon

C#

// C# program for the above approach
using System;
class GFG{
 
// Function to check if the
// sum can be made 0 or not
static int sumzero(int []arr, int N, int K)
{
   
    // Stores sum of array elements
    int sum = 0;
 
    // Traverse the array
    for (int i = 0; i < N; i++)
    {
 
        sum += arr[i];
    }
 
    if (sum == 0)
        Console.Write("Yes");
 
    else if (sum > 0)
    {
 
        if (sum % K == 0)
            Console.Write("Yes");
 
        else
            Console.Write("No");
    }
 
    else
        Console.Write("No");
    return 0;
}
 
// Driver Code
public static void Main(String[] args)
{
    int K, N;
 
    // Given array []arr
    int []arr1 = { 1, -6, 2, 2 };
    K = 1;
    N = arr1.Length;
 
    sumzero(arr1, N, K);
}
}
 
// This code is contributed by 29AjayKumar

Javascript

<script>
 
// JavaScript program for the above approach
 
// Function to check if the
    // sum can be made 0 or not
    function sumzero(arr , N , K)
    {
        // Stores sum of array elements
        var sum = 0;
 
        // Traverse the array
        for (i = 0; i < N; i++) {
 
            sum += arr[i];
        }
 
        if (sum == 0)
            document.write("Yes");
 
        else if (sum > 0) {
 
            if (sum % K == 0)
                document.write("Yes");
 
            else
                document.write("No");
        }
 
        else
            document.write("No");
        return 0;
    }
 
    // Driver Code
     
        var K, N;
 
        // Given array arr
        var arr1 = [ 1, -6, 2, 2 ];
        K = 1;
        N = arr1.length;
 
        sumzero(arr1, N, K);
 
 
// This code contributed by gauravrajput1
 
</script>
Producción: 

No

 

Complejidad temporal: O(N)
Espacio auxiliar: O(1)

Publicación traducida automáticamente

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