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

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`

Output:

`-1,1,-2,2,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.