Number with even sum of digits

Fixed compiling error in java programA positive integer is considered a good number if sum of its digits is even. Find n-th smallest good number.
Examples :
Input : n = 1 Output : 2 First good number is smallest positive number with sum of digits even which is 2. Input : n = 10 Output : 20
A simple solution is to start from 1 and traverse through all-natural numbers. For every number x, check if sum of digits is even. If even increment count of good numbers. Finally, return the n-th Good number.
An efficient solution is based on a pattern in the answer. Let us list down first 20 good numbers. The first 20 good numbers are: 2, 4, 6, 8, 11, 13, 15, 17, 19, 20, 22, 24, 26, 28, 31, 33, 35, 37, 39, 40. Observe that if last digit of n is from 0 to 4 the answer is 2*n and if last digit of n is from 5 to 9 the answer is 2*n + 1.
Steps to solve this problem:
1. Declare a variable lastdig=n%10.
2. Check if lastdig is greater than zero and smaller than 4 than return n<<1.
3. Else return (n<<1)+1.
C++
// C++ program to find n-th// Good number.#include <bits/stdc++.h>using namespace std;// Function to find kth good number.long long int findKthGoodNo(long long int n){ // Find the last digit of n. int lastDig = n % 10; // If last digit is between // 0 to 4 then return 2 * n. if (lastDig >= 0 && lastDig <= 4) return n << 1; // If last digit is between // 5 to 9 then return 2*n + 1. else return (n << 1) + 1;}// Driver codeint main(){ long long int n = 10; cout << findKthGoodNo(n); return 0;} |
Java
// Java program to find n-th// Good number.import java.io.*;public class GFG { // Function to find kth good number. static int findKthGoodNo(int n) { // Find the last digit of n. int lastDig = n % 10; // If last digit is between // 0 to 4 then return 2*n. if (lastDig >= 0 && lastDig <= 4) return n << 1; // If last digit is between // 5 to 9 then return 2*n + 1. else return (n << 1) + 1; } // Driver code public static void main(String[] args) { int n = 10; System.out.println(findKthGoodNo(n)); }}// This code is contributed by// Smitha Dinesh Semwal |
Python 3
# Python 3 program to find# n-th Good number.# Function to find kth # good number.def findKthGoodNo(n): # Find the last digit of n. lastDig = n % 10 # If last digit is between # 0 to 4 then return 2 * n. if (lastDig >= 0 and lastDig <= 4) : return n << 1 # If last digit is between # 5 to 9 then return 2 * n + 1. else: return (n << 1) + 1# Driver coden = 10print(findKthGoodNo(n))# This code is contributed by# Smitha Dinesh Semwal |
C#
// C# program to find n-th// Good number.using System;class GFG{ // Function to find kth // good number public static int findKthGoodNo(int n) { // Find the last digit of n. int lastDig = n % 10; // If last digit is between // 0 to 4 then return 2*n. if (lastDig >= 0 && lastDig <= 4) return n << 1; // If last digit is between // 5 to 9 then return 2*n + 1. else return (n << 1) + 1; } // Driver code static public void Main (string []args) { int n = 10; Console.WriteLine(findKthGoodNo(n)); }}// This code is contributed by Ajit. |
PHP
<?php// PHP program to find n-th // Good number.// Function to find kth // good number.function findKthGoodNo($n){ // Find the last digit of n. $lastDig = $n % 10; // If last digit is between // 0 to 4 then return 2*n. if ($lastDig >= 0 && $lastDig <= 4) return $n << 1; // If last digit is between // 5 to 9 then return 2*n + 1. else return ($n << 1) + 1;}// Driver code$n = 10;echo(findKthGoodNo($n));// This code is contributed by Ajit.?> |
Javascript
<script>// JavaScript program to find n-th// Good number. // Function to find kth good number. function findKthGoodNo(n) { // Find the last digit of n. let lastDig = n % 10; // If last digit is between // 0 to 4 then return 2*n. if (lastDig >= 0 && lastDig <= 4) return n << 1; // If last digit is between // 5 to 9 then return 2*n + 1. else return (n << 1) + 1; }// Driver code let n = 10; document.write(findKthGoodNo(n));// This code is contributed by souravghosh0416.</script> |
20
Time Complexity: O(1)
Auxiliary Space: O(1)
Ready to dive in? Explore our Free Demo Content and join our DSA course, trusted by over 100,000 zambiatek!



