 Open in App
Not now

# Find N distinct integers with sum N

• Difficulty Level : Easy
• Last Updated : 23 Mar, 2021

Given an integer N, the task is to find N distinct integers whose sum is N. If there is more than one combination of the integers, print any one of them.

Examples:

Input: N = 3
Output: 1, -1, 3
Explanation:
On adding the numbers that is 1 + (-1) + 3 the sum is 3.

Input: N = 4
Output: 1, -1, 0, 4
Explanation:
On adding the numbers that is 1 + (-1) + 0 + (4) the sum is 4.

Approach: The idea is to print N/2 Symmetric Pairs like (+x, -x) so that the resultant sum will always be 0
Now if integer N is odd, then print N along with these set of integers to make sum of all integers equals to N
If N is even, print 0 and N along with these set of integers to make sum of all integers equals to N.

Below is the implementation of the above approach:

## C++

 `// C++ for the above approach``#include ``using` `namespace` `std;` `// Function to print distinct N``// numbers whose sum is N``void` `findNumbers(``int` `N)``{``    ``// To store how many symmetric``    ``// pairs needs to be calculated``    ``int` `half = N / 2;` `    ``// For even N we have to print``    ``// one less symmetric pair``    ``if` `(N % 2 == 0) {``        ``half--;``    ``}` `    ``// Iterate till [1 n/2] and Print``    ``// all symmetric pairs(i, -i)``    ``for` `(``int` `i = 1; i <= half; i++) {` `        ``// Print 2 symmetric numbers``        ``cout << (-1) * i``             ``<< ``", "` `<< i << ``", "``;``    ``}` `    ``// if N is Odd, then print N``    ``if` `(N & 1) {``        ``cout << N << endl;``    ``}` `    ``// Else print(0, N)``  ``else` `{``    ``cout << 0 << ``", "``         ``<< N << endl;``   ``}``}` `// Driver Code``int` `main()``{``    ``// Given Sum``    ``int` `N = 5;` `    ``// Function Call``    ``findNumbers(N);``    ``return` `0;``}`

## Java

 `// Java for the above approach``class` `GFG{``    ` `// Function to print distinct N``// numbers whose sum is N``public` `static` `void` `findNumbers(``int` `N)``{``    ` `    ``// To store how many symmetric``    ``// pairs needs to be calculated``    ``int` `half = N / ``2``;``    ` `    ``// For even N we have to print``    ``// one less symmetric pair``    ``if` `(N % ``2` `== ``0``)``    ``{``        ``half--;``    ``}``    ` `    ``// Iterate till [1 n/2] and Print``    ``// all symmetric pairs(i, -i)``    ``for``(``int` `i = ``1``; i <= half; i++)``    ``{` `       ``// Print 2 symmetric numbers``       ``System.out.print((-``1``) * i + ``", "` `+``                               ``i + ``", "``);``    ``}``    ` `    ``// if N is Odd, then print N``    ``int` `check = N & ``1``;``    ``if` `(check != ``0``)``    ``{``        ``System.out.println(N);``    ``}``    ` `    ``// Else print(0, N)``    ``else``    ``{``    ``System.out.println(``0` `+ ``", "` `+ N);``    ``}``}` `// Driver code``public` `static` `void` `main(String[] args)``{``        ` `    ``// Given sum``    ``int` `N = ``5``;``    ` `    ``// Function sall``    ``findNumbers(N);``}``}` `// This code is contributed by divyeshrabadiya07       `

## Python3

 `# Python3 code for the above approach` `# Function to print distinct N``# numbers whose sum is N``def` `findNumbers(N):` `    ``# To store how many symmetric``    ``# pairs needs to be calculated``    ``half ``=` `int``(N ``/` `2``)` `    ``# For even N we have to print``    ``# one less symmetric pair``    ``if` `(N ``%` `2` `=``=` `0``):``        ``half ``=` `half ``-` `1` `    ``# Iterate till [1 n/2] and Print``    ``# all symmetric pairs(i, -i)``    ``for` `i ``in` `range``(``1``, half ``+` `1``):` `        ``# Print 2 symmetric numbers``        ``print``((``-``1``) ``*` `i, end ``=` `', '``)``        ``print``(i, end ``=` `', '``)` `    ``# If N is Odd, then print N``    ``if` `(N & ``1``):``        ``print``(N, end ``=` `'\n'``)` `    ``# Else print(0, N)``    ``else``:``        ``print``(``0``, end ``=` `', '``)``        ``print``(N, end ``=` `'\n'``)` `# Driver Code``N ``=` `5` `# Function Call``findNumbers(N)` `# This code is contributed by PratikBasu   `

## C#

 `// C# for the above approach``using` `System;``class` `GFG{``    ` `// Function to print distinct N``// numbers whose sum is N``public` `static` `void` `findNumbers(``int` `N)``{``    ` `    ``// To store how many symmetric``    ``// pairs needs to be calculated``    ``int` `half = N / 2;``    ` `    ``// For even N we have to print``    ``// one less symmetric pair``    ``if` `(N % 2 == 0)``    ``{``        ``half--;``    ``}``    ` `    ``// Iterate till [1 n/2] and Print``    ``// all symmetric pairs(i, -i)``    ``for``(``int` `i = 1; i <= half; i++)``    ``{` `        ``// Print 2 symmetric numbers``        ``Console.Write((-1) * i + ``", "` `+``                             ``i + ``", "``);``    ``}``    ` `    ``// if N is Odd, then print N``    ``int` `check = N & 1;``    ``if` `(check != 0)``    ``{``        ``Console.Write(N + ``"\n"``);``    ``}``    ` `    ``// Else print(0, N)``    ``else``    ``{``    ``Console.Write(0 + ``", "` `+ N + ``"\n"``);``    ``}``}` `// Driver code``public` `static` `void` `Main(``string``[] args)``{``        ` `    ``// Given sum``    ``int` `N = 5;``    ` `    ``// Function sall``    ``findNumbers(N);``}``}` `// This code is contributed by rutvik_56`

## Javascript

 ``

Output:

`-1,1,-2,2,5`

My Personal Notes arrow_drop_up