Dados dos números enteros N y K , la tarea es representar N como la suma de K números impares. Si no es posible crear la suma, genere -1 .
Nota: La representación puede contener números impares duplicados.
Ejemplos:
Entrada: N = 5, K = 3
Salida: 1, 1, 3
Explicación:
El número dado N se puede representar como 1 + 1 + 3 = 5
Entrada: N = 7, K = 5
Salida: 1, 1, 1, 1, 3
Explicación:
El número dado N se puede representar como 1 + 1 + 1 + 1 + 3 = 7
Enfoque:
Para resolver el problema mencionado anteriormente, una solución simple es maximizar la ocurrencia de 1 , que es el número impar más pequeño posible. Las condiciones necesarias para representar el número N como K números impares son:
- (K – 1) debe ser menor que N.
- N – (K – 1) debe ser un número impar.
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 sumOddNumbers(int N, int K) { int check = N - (K - 1); // N must be greater than equal to 2*K // and must be odd if (check > 0 && check % 2 == 1) { for (int i = 0; i < K - 1; i++) { cout << "1 "; } cout << check; } else cout << "-1"; } // Driver Code int main() { int N = 5; int K = 3; sumOddNumbers(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 sumOddNumbers(int N, int K) { int check = N - (K - 1); // N must be greater than equal // to 2*K and must be odd if (check > 0 && check % 2 == 1) { for(int i = 0; i < K - 1; i++) { System.out.print("1 "); } System.out.print(+check); } else System.out.println("-1 "); } // Driver Code public static void main(String args[]) { int N = 5; int K = 3; sumOddNumbers(N, K); } } // This code is contributed by AbhiThakur
Python3
# Python3 implementation to represent # N as sum of K even numbers # Function to print the representation def sumOddNumbers(N, K): check = N - (K - 1) # N must be greater than equal # to 2*K and must be odd if (check > 0 and check % 2 == 1): for i in range(0, K - 1): print("1", end = " ") print(check, end = " ") else: print("-1") # Driver Code N = 5 K = 3; sumOddNumbers(N, K) # This code is contributed by PratikBasu
C#
// C# implementation to represent // N as sum of K even numbers using System; class GFG{ // Function to print the representation static void sumOddNumbers(int N, int K) { int check = N - (K - 1); // N must be greater than equal // to 2*K and must be odd if (check > 0 && check % 2 == 1) { for(int i = 0; i < K - 1; i++) { Console.Write("1 "); } Console.Write(+check); } else Console.WriteLine("-1 "); } // Driver Code public static void Main() { int N = 5; int K = 3; sumOddNumbers(N, K); } } // This code is contributed by Code_Mech
JavaScript
<script> // Javascript implementation to represent // N as sum of K even numbers // Function to print the representation function sumOddNumbers(N, K) { var check = N - (K - 1); var i; // N must be greater than equal to 2*K // and must be odd if (check > 0 && check % 2 == 1) { for (i = 0; i < K - 1; i++) { document.write("1,"+" "); } document.write(check + " "); } else document.write("-1"); } // Driver Code var N = 5; var K = 3; sumOddNumbers(N, K); </script>
1 1 3
Complejidad de tiempo: O(K)
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