Open In App

# Find the Number which contain the digit d

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++

 `// C++ program to print the number which``// contain the digit d from 0 to n``#include ``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

 `// 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

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

 `// 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

 ` 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.``?>`

## Javascript

 ``

Output

`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:

## C++

 `// CPP program to print the number which``// contain the digit d from 0 to n``#include``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

 `// 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);``    ``}``}`

## Python3

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

 `// 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 */`

## Javascript

 ``

Output

`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)