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