Given two integer number n and d. The task is to find the number between 0 to n which contain the specific digit d.
Examples:
Input : n = 20 d = 5 Output : 5 15 Input : n = 50 d = 2 Output : 2 12 20 21 22 23 24 25 26 27 28 29 32 42
Approach 1: Take a loop from 0 to n and check each number one by one, if the number contains digit d then print it otherwise increase the number. Continue this process until loop ended.
Implementation:
// C++ program to print the number which // contain the digit d from 0 to n #include <bits/stdc++.h> using namespace std;
// Returns true if d is present as digit // in number x. bool isDigitPresent( int x, int d)
{ // Break loop if d is present as digit
while (x > 0)
{
if (x % 10 == d)
break ;
x = x / 10;
}
// If loop broke
return (x > 0);
} // function to display the values void printNumbers( int n, int d)
{ // Check all numbers one by one
for ( int i = 0; i <= n; i++)
// checking for digit
if (i == d || isDigitPresent(i, d))
cout << i << " " ;
} // Driver code int main()
{ int n = 47, d = 7;
printNumbers(n, d);
return 0;
} |
// Java program to print the number which // contain the digit d from 0 to n class GFG
{ // Returns true if d is present as digit
// in number x.
static boolean isDigitPresent( int x, int d)
{
// Break loop if d is present as digit
while (x > 0 )
{
if (x % 10 == d)
break ;
x = x / 10 ;
}
// If loop broke
return (x > 0 );
}
// function to display the values
static void printNumbers( int n, int d)
{
// Check all numbers one by one
for ( int i = 0 ; i <= n; i++)
// checking for digit
if (i == d || isDigitPresent(i, d))
System.out.print(i + " " );
}
// Driver code
public static void main(String[] args)
{
int n = 47 , d = 7 ;
printNumbers(n, d);
}
} |
# Python3 program to print the number which # contain the digit d from 0 to n # Returns true if d is present as digit # in number x. def isDigitPresent(x, d):
# Break loop if d is present as digit
while (x > 0 ):
if (x % 10 = = d):
break
x = x / 10
# If loop broke
return (x > 0 )
# function to display the values def printNumbers(n, d):
# Check all numbers one by one
for i in range ( 0 , n + 1 ):
# checking for digit
if (i = = d or isDigitPresent(i, d)):
print (i,end = " " )
# Driver code n = 47
d = 7
print ( "The number of values are" )
printNumbers(n, d) #This code is contributed by #Smitha Dinesh Semwal |
// C# program to print the number which // contain the digit d from 0 to n using System;
class GFG {
// Returns true if d is present as digit
// in number x.
static bool isDigitPresent( int x, int d)
{
// Break loop if d is present as digit
while (x > 0)
{
if (x % 10 == d)
break ;
x = x / 10;
}
// If loop broke
return (x > 0);
}
// function to display the values
static void printNumbers( int n, int d)
{
// Check all numbers one by one
for ( int i = 0; i <= n; i++)
// checking for digit
if (i == d || isDigitPresent(i, d))
Console.Write(i + " " );
}
// Driver code
public static void Main()
{
int n = 47, d = 7;
printNumbers(n, d);
}
} // This code contributed by parashar. |
<?php // PHP program to print the number which // contain the digit d from 0 to n // Returns true if d is present as digit // in number x. function isDigitPresent( $x , $d )
{ // Break loop if d is
// present as digit
while ( $x > 0)
{
if ( $x % 10 == $d )
break ;
$x = $x / 10;
}
// If loop broke
return ( $x > 0);
} // function to display the values function printNumbers( $n , $d )
{ // Check all numbers one by one
for ( $i = 0; $i <= $n ; $i ++)
// checking for digit
if ( $i == $d || isDigitPresent( $i , $d ))
echo $i , " " ;
} // Driver Code
$n = 47;
$d = 7;
printNumbers( $n , $d );
// This code contributed by ajit. ?> |
<script> // JavaScript program to print the number which // contain the digit d from 0 to n // Returns true if d is present as digit // in number x. function isDigitPresent(x, d)
{ // Break loop if d is present as digit
while (x > 0)
{
if (x % 10 == d)
break ;
x = x / 10;
}
// If loop broke
return (x > 0);
} // Function to display the values function printNumbers(n, d)
{ // Check all numbers one by one
for (let i = 0; i <= n; i++)
// Checking for digit
if (i == d || isDigitPresent(i, d))
document.write(i + " " );
} // Driver code let n = 47, d = 7; printNumbers(n, d); // This code is contributed by splevel62 </script> |
7 17 27 37 47
Complexity Analysis:
- Time Complexity: O(n logn)
- Auxiliary Space: O(1)
Approach 2: This approach uses every number as a String and checks digit is present or not. This approach use of String.indexOf() function to check if the character is present in the string or not.
String.indexOf() >= 0 means character is present and String.indexOf() = -1 means character is not present
Implementation:
// CPP program to print the number which // contain the digit d from 0 to n #include<bits/stdc++.h> using namespace std;
// function to display the values void printNumbers( int n, int d)
{ // Converting d to character
string st = "" ;
st += to_string(d);
char ch = st[0];
string p = "" ;
p += ch;
// Loop to check each digit one by one.
for ( int i = 0; i <= n; i++)
{
// initialize the string
st = "" ;
st = st + to_string(i);
int idx = st.find(p);
// checking for digit
if (i == d || idx!=-1)
cout << (i) << " " ;
}
} // Driver code int main()
{ int n = 100, d = 5;
printNumbers(n, d);
} // This code is contributed by // Surendra_Gangwar |
// Java program to print the number which // contain the digit d from 0 to n public class GFG {
// function to display the values
static void printNumbers( int n, int d)
{
// Converting d to character
String st = "" + d;
char ch = st.charAt( 0 );
// Loop to check each digit one by one.
for ( int i = 0 ; i <= n; i++) {
// initialize the string
st = "" ;
st = st + i;
// checking for digit
if (i == d || st.indexOf(ch) >= 0 )
System.out.print(i + " " );
}
}
// Driver code
public static void main(String[] args)
{
int n = 100 , d = 5 ;
printNumbers(n, d);
}
} |
# Python 3 program to print the number # which contain the digit d from 0 to n def index(st, ch):
for i in range ( len (st)):
if (st[i] = = ch):
return i;
return - 1
# function to display the values def printNumbers(n, d):
# Converting d to character st = "" + str (d)
ch = st[ 0 ]
# Loop to check each digit one by one.
for i in range ( 0 , n + 1 , 1 ):
# initialize the string
st = ""
st = st + str (i)
# checking for digit
if (i = = d or index(st, ch) > = 0 ):
print (i, end = " " )
# Driver code if __name__ = = '__main__' :
n = 100
d = 5
printNumbers(n, d)
# This code is contributed by # Shashank_Sharma |
// C# program to print the number which // contain the digit d from 0 to n using System;
class GFG
{ // function to display the values
static void printNumbers( int n, int d)
{
// Converting d to character
String st = "" + d;
char ch = st[0];
// Loop to check each digit one by one.
for ( int i = 0; i < n; i++)
{
// initialize the string
st = "" ;
st = st + i;
// checking for digit
if (i == d || st.IndexOf(ch) >= 0)
Console.Write(i + " " );
}
}
// Driver code
public static void Main()
{
int n = 100, d = 5;
printNumbers(n, d);
}
} /* This code contributed by PrinciRaj1992 */ |
<script> // Javascript program to print the number which // contain the digit d from 0 to n // Function to display the values function printNumbers(n, d)
{ // Converting d to character
let st = "" + d;
let ch = st[0];
// Loop to check each digit one by one.
for (let i = 0; i < n; i++)
{
// Initialize the string
st = "" ;
st = st + i;
// Checking for digit
if (i == d || st.indexOf(ch) >= 0)
document.write(i + " " );
}
} // Driver code let n = 100, d = 5; printNumbers(n, d); // This code is contributed by decode2207 </script> |
5 15 25 35 45 50 51 52 53 54 55 56 57 58 59 65 75 85 95
Complexity Analysis:
- Time Complexity: O(n)
- Space Complexity: O(1)