# Find N distinct integers with sum N

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.

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

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 & 2) { ` `        ``cout << N << endl; ` `    ``} ` ` `  `    ``// Else print(0, N) ` `    ``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 & ``2``; ` `    ``if` `(check != ``0``) ` `    ``{  ` `        ``System.out.println(N); ` `    ``}  ` `     `  `    ``// Else print(0, N) ` `    ``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 & ``2``):  ` `        ``print``(N, end ``=` `'\n'``) ` ` `  `    ``# Else print(0, N)  ` `    ``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 & 2; ` `    ``if` `(check != 0) ` `    ``{  ` `        ``Console.Write(N + ``"\n"``); ` `    ``}  ` `     `  `    ``// Else print(0, N) ` `    ``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 `

Output:

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

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.

My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.