Given a non-negative number **N**, the task is to convert the number by deleting some digits of the number, such that the sum of the digits becomes even but the number is odd. In case there is no possible number, then print **-1**.

**Note:** There can be multiple numbers possible for a given N.

**Examples:**

Input:N = 18720

Output:17

Explanation:

After Deleting 8, 2, 0 digits the number becomes 17 which is odd and the digit-sum is 8 which is even.

Input:N = 3

Output:-1

Explanation:

There is no possibility such that number becomes odd and the digit-sum is even.

**Approach:**

The idea is to use the fact that **“Even number of odd digits will give the sum to even number”**. So, If the digits in the number contain even count of odd digits then it is possible to convert the number otherwise converting such number is not possible.

Below is the implementation of the above approach.

## C++

`// C++ implementation to convert ` `// a number into odd number such ` `// that digit-sum is odd ` ` ` `#include <bits/stdc++.h> ` `using` `namespace` `std; ` ` ` `// Function to convert a number into ` `// odd number such that digit-sum is odd ` `void` `converthenumber(` `int` `n) ` `{ ` ` ` `string s = to_string(n); ` ` ` `string res; ` ` ` ` ` `// Loop to find any first two ` ` ` `// odd number such that their ` ` ` `// sum is even and number is odd ` ` ` `for` `(` `int` `i = 0; i < s.length(); i++) { ` ` ` `if` `(s[i] == ` `'1'` `|| s[i] == ` `'3'` ` ` `|| s[i] == ` `'5'` `|| s[i] == ` `'7'` ` ` `|| s[i] == ` `'9'` `) ` ` ` `res += s[i]; ` ` ` `if` `(res.size() == 2) ` ` ` `break` `; ` ` ` `} ` ` ` ` ` `// Print the result ` ` ` `if` `(res.size() == 2) ` ` ` `cout << res << endl; ` ` ` `else` ` ` `cout << ` `"-1"` `<< endl; ` `} ` ` ` `// Driver Code ` `int` `main() ` `{ ` ` ` `int` `n = 18720; ` ` ` `converthenumber(n); ` ` ` ` ` `return` `0; ` `} ` |

*chevron_right*

*filter_none*

## Java

`// Java implementation to convert ` `// a number into odd number such ` `// that digit-sum is odd ` `import` `java.util.*; ` `import` `java.lang.*; ` `import` `java.io.*; ` ` ` `class` `Main ` `{ ` ` ` `// Function to convert a number into ` `// odd number such that digit-sum is odd ` `static` `void` `converthenumber(` `int` `n) ` `{ ` ` ` `String s = Integer.toString(n); ` ` ` `String res = ` `""` `; ` ` ` ` ` `// Loop to find any first two ` ` ` `// odd number such that their ` ` ` `// sum is even and number is odd ` ` ` `for` `(` `int` `i = ` `0` `; i < s.length(); i++) ` ` ` `{ ` ` ` `if` `(s.charAt(i) == ` `'1'` `|| s.charAt(i) == ` `'3'` ` ` `|| s.charAt(i) == ` `'5'` `|| s.charAt(i) == ` `'7'` ` ` `|| s.charAt(i) == ` `'9'` `) ` ` ` `res += s.charAt(i); ` ` ` `if` `(res.length() == ` `2` `) ` ` ` `break` `; ` ` ` `} ` ` ` ` ` `// Print the result ` ` ` `if` `(res.length() == ` `2` `) ` ` ` `System.out.println(res); ` ` ` `else` ` ` `System.out.println(-` `1` `); ` `} ` ` ` `// Driver code ` `public` `static` `void` `main (String[] args) ` `{ ` ` ` `int` `n = ` `18720` `; ` ` ` `converthenumber(n); ` `} ` `} ` ` ` `// This code is contributed by Subhadeep Gupta ` |

*chevron_right*

*filter_none*

## Python3

`# Python3 implementation to convert ` `# a number into odd number such ` `# that digit-sum is odd ` ` ` `# Function to convert a number into ` `# odd number such that digit-sum is odd ` `def` `converthenumber(n) : ` ` ` `s ` `=` `str` `(n); ` ` ` `res ` `=` `""; ` ` ` ` ` `# Loop to find any first two ` ` ` `# odd number such that their ` ` ` `# sum is even and number is odd ` ` ` `for` `i ` `in` `range` `(` `len` `(s)) : ` ` ` `if` `(s[i] ` `=` `=` `'1'` `or` `s[i] ` `=` `=` `'3'` ` ` `or` `s[i] ` `=` `=` `'5'` `or` `s[i] ` `=` `=` `'7'` ` ` `or` `s[i] ` `=` `=` `'9'` `) : ` ` ` `res ` `+` `=` `s[i]; ` ` ` ` ` `if` `(` `len` `(res) ` `=` `=` `2` `) : ` ` ` `break` `; ` ` ` ` ` `# Print the result ` ` ` `if` `(` `len` `(res) ` `=` `=` `2` `) : ` ` ` `print` `(res); ` ` ` ` ` `else` `: ` ` ` `print` `(` `"-1"` `); ` ` ` `# Driver Code ` `if` `__name__ ` `=` `=` `"__main__"` `: ` ` ` ` ` `n ` `=` `18720` `; ` ` ` `converthenumber(n); ` ` ` `# This code is contributed by AnkitRai01 ` |

*chevron_right*

*filter_none*

## C#

`// C# implementation to convert ` `// a number into odd number such ` `// that digit-sum is odd ` `using` `System; ` ` ` `class` `GFG ` `{ ` ` ` ` ` `// Function to convert a number into ` `// odd number such that digit-sum is odd ` `static` `void` `converthenumber(` `int` `n) ` `{ ` ` ` `String s = n.ToString(); ` ` ` `String res = ` `""` `; ` ` ` ` ` `// Loop to find any first two ` ` ` `// odd number such that their ` ` ` `// sum is even and number is odd ` ` ` `for` `(` `int` `i = 0; i < s.Length; i++) ` ` ` `{ ` ` ` `if` `(s[i] == ` `'1'` `|| s[i] == ` `'3'` ` ` `|| s[i] == ` `'5'` `|| s[i] == ` `'7'` ` ` `|| s[i] == ` `'9'` `) ` ` ` `res += s[i]; ` ` ` `if` `(res.Length == 2) ` ` ` `break` `; ` ` ` `} ` ` ` ` ` `// Print the result ` ` ` `if` `(res.Length == 2) ` ` ` `Console.WriteLine(res); ` ` ` `else` ` ` `Console.WriteLine(-1); ` `} ` ` ` `// Driver code ` `public` `static` `void` `Main (String[] args) ` `{ ` ` ` `int` `n = 18720; ` ` ` `converthenumber(n); ` `} ` `} ` ` ` `// This code is contributed by Mohit kuamr 29 ` |

*chevron_right*

*filter_none*

**Output:**

17

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.

## Recommended Posts:

- Count of integers in a range which have even number of odd digits and odd number of even digits
- Count of characters in str1 such that after deleting anyone of them str1 becomes str2
- Count numbers from given range having odd digits at odd places and even digits at even places
- Count numbers in given range such that sum of even digits is greater than sum of odd digits
- Find the Largest Cube formed by Deleting minimum Digits from a number
- Check if a number has an odd count of odd divisors and even count of even divisors
- Finding sum of digits of a number until sum becomes single digit
- Add minimum number to an array so that the sum becomes even
- Count total number of N digit numbers such that the difference between sum of even and odd digits is 1
- Find third number such that sum of all three number becomes prime
- Check whether product of digits at even places is divisible by sum of digits at odd place of a number
- Number of positions where a letter can be inserted such that a string becomes palindrome
- Find Nth even length palindromic number formed using digits X and Y
- Find the sum of digits of a number at even and odd places
- Minimum value to be assigned to the elements so that sum becomes greater than initial sum
- Remove characters from a numeric string such that string becomes divisible by 8
- Remove minimum elements from the array such that 2*min becomes more than max
- Smallest odd number with even sum of digits from the given number N
- Delete odd and even numbers at alternate step such that sum of remaining elements is minimized
- Print all n-digit numbers with absolute difference between sum of even and odd digits is 1

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.