Encuentre K enteros impares distintos tales que su suma sea igual a N

Dados dos enteros N y K , la tarea es encontrar cualquier K entero impar distinto tal que su suma sea igual a N . Si no existen tales enteros, imprima -1.
Ejemplos: 
 

Entrada: N = 10, K = 2 
Salida: 1, 9 
Explicación: 
Hay dos posibles enteros impares distintos, tales que su suma es igual a N. 
Los posibles K enteros pueden ser – {(1, 9), (3, 7 )}
Entrada: N = 5, K = 4 
Salida: -1 
Explicación: 
No existen 4 enteros impares distintos tales que su suma sea 5. 
 

Acercarse: 
 

  • La observación clave en este problema es que si N y K tienen diferente paridad , entonces no es posible encontrar K enteros tan distintos que su suma sea igual a N,
  • De lo contrario, dichos enteros K- 1 consistirán en los primeros enteros positivos impares K-1
  • El K -ésimo número impar será igual a (N – la suma de los primeros (K-1) enteros impares) 
     
Kth Odd number  = N - sum of first K-1 integer
  •  

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

C++

// C++ implementation to find k
// odd integers such that their sum is N
 
#include <bits/stdc++.h>
using namespace std;
 
// Function to find K odd integers
// such that their sum is N
void oddIntegers(int n, int k)
{
    // Condition to check if there
    // exist such K integers
    if (n % 2 != k % 2) {
        cout << "-1"
             << "\n";
        return;
    }
 
    int sum = 0;
    int i = 1;
    int j = 1;
 
    // Loop to find first K-1
    // distinct odd integers
    while (j < k) {
        sum = sum + i;
        cout << i << " ";
        i = i + 2;
        j++;
    }
 
    // Final Kth odd number
    int finalOdd = n - sum;
 
    cout << finalOdd << "\n";
}
 
// Driver code
int main()
{
    int n = 10;
    int k = 2;
 
    oddIntegers(n, k);
 
    return 0;
}

Java

// Java implementation to find k
// odd integers such that their sum is N
class GFG
{
 
// Function to find K odd integers
// such that their sum is N
static void oddIntegers(int n, int k)
{
    // Condition to check if there
    // exist such K integers
    if (n % 2 != k % 2) {
        System.out.println("-1");
        return;
    }
 
    int sum = 0;
    int i = 1;
    int j = 1;
 
    // Loop to find first K-1
    // distinct odd integers
    while (j < k) {
        sum = sum + i;
        System.out.print(i+" ");
        i = i + 2;
        j++;
    }
 
    // Final Kth odd number
    int finalOdd = n - sum;
     
    System.out.println(finalOdd);
}
 
// Driver code
public static void main (String[] args)
{
    int n = 10;
    int k = 2;
 
    oddIntegers(n, k);
}
}
 
// This code is contributed by shubhamsingh

Python3

# Python3 implementation to find k
# odd integers such that their sum is N
 
# Function to find K odd integers
# such that their sum is N
def oddIntegers(n, k) :
 
    # Condition to check if there
    # exist such K integers
    if (n % 2 != k % 2) :
        print("-1");
         
        return;
 
    sum = 0;
    i = 1;
    j = 1;
 
    # Loop to find first K-1
    # distinct odd integers
    while (j < k) :
        sum += i;
        print(i,end= " ");
        i += 2;
        j += 1;
 
    # Final Kth odd number
    finalOdd = n - sum;
 
    print(finalOdd);
 
# Driver code
if __name__ == "__main__" :
 
    n = 10;
    k = 2;
 
    oddIntegers(n, k);
     
# This code is contributed by AnkitRai01

C#

// C# implementation to find k
// odd integers such that their sum is N
using System;
 
class GFG
{
  
// Function to find K odd integers
// such that their sum is N
static void oddints(int n, int k)
{
    // Condition to check if there
    // exist such K integers
    if (n % 2 != k % 2) {
        Console.WriteLine("-1");
        return;
    }
  
    int sum = 0;
    int i = 1;
    int j = 1;
  
    // Loop to find first K-1
    // distinct odd integers
    while (j < k) {
        sum = sum + i;
        Console.Write(i+" ");
        i = i + 2;
        j++;
    }
  
    // Final Kth odd number
    int finalOdd = n - sum;
      
    Console.WriteLine(finalOdd);
}
  
// Driver code
public static void Main(String[] args)
{
    int n = 10;
    int k = 2;
  
    oddints(n, k);
}
}
 
// This code is contributed by PrinciRaj1992

Javascript

<script>
 
// JavaScript implementation to find k
// odd integers such that their sum is N   
 
// Function to find K odd integers
// such that their sum is N
    function oddIntegers(n , k)
    {
        // Condition to check if there
        // exist such K integers
        if (n % 2 != k % 2) {
            document.write("-1");
            return;
        }
 
        var sum = 0;
        var i = 1;
        var j = 1;
 
        // Loop to find first K-1
        // distinct odd integers
        while (j < k) {
            sum = sum + i;
            document.write(i + " ");
            i = i + 2;
            j++;
        }
 
        // Final Kth odd number
        var finalOdd = n - sum;
 
        document.write(finalOdd);
    }
 
    // Driver code
     
        var n = 10;
        var k = 2;
 
        oddIntegers(n, k);
 
// This code contributed by Rajput-Ji
 
</script>
Producción: 

1 9

 

Análisis de rendimiento: 
 

  • Complejidad de tiempo: como en el enfoque anterior, hay un ciclo para encontrar tales K enteros impares que toman O (K) tiempo en el peor de los casos. Por lo tanto, la Complejidad del Tiempo será O(K) .
  • Complejidad del espacio auxiliar: como en el enfoque anterior, no se utiliza espacio adicional. Por lo tanto, la complejidad del espacio auxiliar será O(1) .

Publicación traducida automáticamente

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