Given an integer N, the task is to print first N integers whose sum of digits is 10.
Examples:
Input: N = 4
Output: 19 28 37 46
Input: N = 6
Output: 19 28 37 46 55 64
Approach: Initialise num = 19 to get the first number of the series, now add 9 to the previous number and check whether the sum of the digits of the new number is 10. If yes then this is the next number of the series, this is because the difference between any two consecutive numbers of the required series is at least 9.
Below is the implementation of the above approach:
// C++ implementation of the approach #include <bits/stdc++.h> using namespace std;
// Function to return the // sum of digits of n int sum( int n)
{ int sum = 0;
while (n) {
// Add the last digit to the sum
sum = sum + n % 10;
// Remove last digit
n = n / 10;
}
// Return the sum of digits
return sum;
} // Function to print the first n numbers // whose sum of digits is 10 void firstN( int n)
{ // First number of the series is 19
int num = 19, cnt = 1;
while (cnt != n) {
// If the sum of digits of the
// current number is equal to 10
if (sum(num) == 10) {
// Print the number
cout << num << " " ;
cnt++;
}
// Add 9 to the previous number
num += 9;
}
} // Driver code int main()
{ int n = 10;
firstN(n);
return 0;
} |
// Java implementation of the approach import java.util.*;
class GFG
{ // Function to return the // sum of digits of n static int sum( int n)
{ int sum = 0 ;
while (n > 0 )
{
// Add the last digit to the sum
sum = sum + n % 10 ;
// Remove last digit
n = n / 10 ;
}
// Return the sum of digits
return sum;
} // Function to print the first n numbers // whose sum of digits is 10 static void firstN( int n)
{ // First number of the series is 19
int num = 19 , cnt = 1 ;
while (cnt != n)
{
// If the sum of digits of the
// current number is equal to 10
if (sum(num) == 10 )
{
// Print the number
System.out.print(num + " " );
cnt++;
}
// Add 9 to the previous number
num += 9 ;
}
} // Driver code public static void main(String[] args)
{ int n = 10 ;
firstN(n);
} } // This code is contributed by Rajput-Ji |
# Python3 implementation of the approach # Function to return the # sum of digits of n def sum (n) :
sum = 0 ;
while (n) :
# Add the last digit to the sum
sum = sum + n % 10 ;
# Remove last digit
n = n / / 10 ;
# Return the sum of digits
return sum ;
# Function to print the first n numbers # whose sum of digits is 10 def firstN(n) :
# First number of the series is 19
num = 19 ; cnt = 1 ;
while (cnt ! = n) :
# If the sum of digits of the
# current number is equal to 10
if ( sum (num) = = 10 ) :
# Print the number
print (num,end = " " );
cnt + = 1 ;
# Add 9 to the previous number
num + = 9 ;
# Driver code if __name__ = = "__main__" :
n = 10 ;
firstN(n);
# This code is contributed by AnkitRai01 |
// C# implementation of the approach using System;
class GFG
{ // Function to return the // sum of digits of n static int sum( int n)
{ int sum = 0;
while (n > 0)
{
// Add the last digit to the sum
sum = sum + n % 10;
// Remove last digit
n = n / 10;
}
// Return the sum of digits
return sum;
} // Function to print the first n numbers // whose sum of digits is 10 static void firstN( int n)
{ // First number of the series is 19
int num = 19, cnt = 1;
while (cnt != n)
{
// If the sum of digits of the
// current number is equal to 10
if (sum(num) == 10)
{
// Print the number
Console.Write(num + " " );
cnt++;
}
// Add 9 to the previous number
num += 9;
}
} // Driver code public static void Main(String[] args)
{ int n = 10;
firstN(n);
} } // This code is contributed by PrinciRaj1992 |
<script> // JavaScript implementation of the approach // Function to return the
// sum of digits of n
function sum(n) {
var sum = 0;
while (n > 0) {
// Add the last digit to the sum
sum = sum + n % 10;
// Remove last digit
n = parseInt(n / 10);
}
// Return the sum of digits
return sum;
}
// Function to print the first n numbers
// whose sum of digits is 10
function firstN(n) {
// First number of the series is 19
var num = 19, cnt = 1;
while (cnt != n) {
// If the sum of digits of the
// current number is equal to 10
if (sum(num) == 10) {
// Print the number
document.write(num + " " );
cnt++;
}
// Add 9 to the previous number
num += 9;
}
}
// Driver code
var n = 10;
firstN(n);
// This code contributed by Rajput-Ji </script> |
19 28 37 46 55 64 73 82 91
Time Complexity: O(n*log(n))
Auxiliary Space: O(1)