Representar N como suma de K números pares

Dados dos números enteros N y K , la tarea es representar N como la suma de K números pares. Si no es posible representar el número, imprima -1.
Nota: La representación puede contener números pares duplicados.

Ejemplos:  

Entrada: N = 6, K = 3 
Salida: 2 2 2 
Explicación: 
El número dado 6 se puede representar como 2 + 2 + 2 = 6 
Entrada: N = 8, K = 2 
Salida: 2 6 
Explicación: 
El número dado 3 se puede representar como 2 + 6 = 8  

Enfoque: para resolver el problema mencionado anteriormente, una solución simple es maximizar la ocurrencia de 2, que es el número par más pequeño. La condición necesaria para representar N como la suma de K números son:  

  • (K – 1) * 2 debe ser menor que N.
  • N – (K – 1) * 2 debe ser Par.

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

C++

// C++ implementation to represent
// N as sum of K even numbers
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to print the representation
void sumEvenNumbers(int N, int K)
{
    int check = N - 2 * (K - 1);
 
    // N must be greater than equal to 2*K
    // and must be even
    if (check > 0 && check % 2 == 0) {
        for (int i = 0; i < K - 1; i++) {
            cout << "2 ";
        }
        cout << check;
    }
    else {
        cout << "-1";
    }
}
 
// Driver Code
int main()
{
    int N = 8;
    int K = 2;
 
    sumEvenNumbers(N, K);
    return 0;
}

Java

// Java implementation to represent
// N as sum of K even numbers
import java.util.*;
 
class GFG{
     
// Function to print the representation
static void sumEvenNumbers(int N, int K)
{
    int check = N - 2 * (K - 1);
 
    // N must be greater than equal to 2 * K
    // and must be even
    if (check > 0 && check % 2 == 0)
    {
        for(int i = 0; i < K - 1; i++)
        {
           System.out.print("2 ");
        }
        System.out.println(check);
    }
    else
    {
        System.out.println("-1");
    }
}
 
// Driver Code
public static void main(String args[])
{
    int N = 8;
    int K = 2;
 
    sumEvenNumbers(N, K);
}
}
 
// This code is contributed by ANKITKUMAR34

Python3

# Python3 implementation to represent
# N as sum of K even numbers
 
# Function to print the representation
def sumEvenNumbers(N, K):
     
    check = N - 2 * (K - 1)
 
    # N must be greater than equal to 2 * K
    # and must be even
    if (check > 0 and check % 2 == 0):
        for i in range(K - 1):
            print("2 ", end = "")
             
        print(check)
    else:
        print("-1")
 
# Driver Code
N = 8
K = 2
sumEvenNumbers(N, K)
 
# This code is contributed by ANKITKUMAR34

C#

// C# implementation to represent
// N as sum of K even numbers
using System;
 
class GFG{
     
// Function to print the representation
static void sumEvenNumbers(int N, int K)
{
    int check = N - 2 * (K - 1);
 
    // N must be greater than equal to
    //  2 * K and must be even
    if (check > 0 && check % 2 == 0)
    {
        for(int i = 0; i < K - 1; i++)
        {
           Console.Write("2 ");
        }
        Console.WriteLine(check);
    }
    else
    {
        Console.WriteLine("-1");
    }
}
 
// Driver Code
static public void Main(String []args)
{
    int N = 8;
    int K = 2;
 
    sumEvenNumbers(N, K);
}
}
 
// This code is contributed by 29AjayKumar

Javascript

<script>
 
// Javascript implementation to represent
// N as sum of K even numbers
       
// Function to print the representation
function sumEvenNumbers(N, K)
{
    let check = N - 2 * (K - 1);
   
    // N must be greater than equal to 2 * K
    // and must be even
    if (check > 0 && check % 2 == 0)
    {
        for(let i = 0; i < K - 1; i++)
        {
           document.write("2 ");
        }
        document.write(check);
    }
    else
    {
        document.write("-1");
    }
}
 
// Driver Code
     
       let N = 8;
    let K = 2;
   
    sumEvenNumbers(N, K);
            
</script>
Producción: 

2 6

 

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

Publicación traducida automáticamente

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