# Find the number of integers from 1 to n which contains digits 0’s and 1’s only

Given a number N. The task is to find the number of integers from 1 to n which contains digits 0’s and 1’s only.

Examples:

```Input : N = 15
Output : 3
Explanation : 1, 10, 11 are such integers.

Input : N = 120
Output : 7
Explanation : 1, 10, 11, 100, 101, 110, 111
are such integers.
```

## Recommended: Please try your approach on {IDE} first, before moving on to the solution.

Approach: An efficient approach is to build integers which contain 1’s and 0’s only using a recursive function starting from the number 1. For each number check whether it is less than n or not.

Below is the implementation of the above approach:

## C++

 `// CPP program to find the number of integers ` `// from 1 to n which contains digits 0's and 1's only ` ` `  `#include ` `using` `namespace` `std; ` ` `  `// Function to find the number of integers ` `// from 1 to n which contains 0's and 1's only ` `int` `countNumbers(``int` `x, ``int` `n) ` `{ ` `    ``// If number is greater than n ` `    ``if` `(x > n) ` `        ``return` `0; ` ` `  `    ``// otherwise add count this number and ` `    ``// call two functions ` `    ``return` `1 + countNumbers(x * 10, n) + countNumbers(x * 10 + 1, n); ` `} ` ` `  `// Driver code ` `int` `main() ` `{ ` `    ``int` `n = 120; ` ` `  `    ``cout << countNumbers(1, n); ` ` `  `    ``return` `0; ` `} `

## Java

 `// Java program to find the number of integers ` `// from 1 to n which contains digits 0's and 1's only ` `class` `GFG ` `{ ` `     `  `// Function to find the number of integers ` `// from 1 to n which contains 0's and 1's only ` `static` `int` `countNumbers(``int` `x, ``int` `n) ` `{ ` `    ``// If number is greater than n ` `    ``if` `(x > n) ` `        ``return` `0``; ` ` `  `    ``// otherwise add count this number and ` `    ``// call two functions ` `    ``return` `1` `+ countNumbers(x * ``10``, n) + countNumbers(x * ``10` `+ ``1``, n); ` `} ` ` `  `// Driver code ` `public` `static` `void` `main (String[] args)  ` `{ ` `    ``int` `n = ``120``; ` ` `  `    ``System.out.println(countNumbers(``1``, n)); ` `} ` `} ` ` `  `// This code is contributed by chandan_jnu `

## Python3

 `# Python3 program to find the number of  ` `# integers from 1 to n which contains  ` `# digits 0's and 1's only  ` ` `  `# Function to find the number of integers  ` `# from 1 to n which contains 0's and 1's only  ` `def` `countNumbers(x, n):  ` `     `  `    ``# If number is greater than n  ` `    ``if` `x > n :  ` `        ``return` `0` ` `  `    ``# otherwise add count this number and  ` `    ``# call two functions  ` `    ``return` `(``1` `+` `countNumbers(x ``*` `10``, n) ``+`  `                ``countNumbers(x ``*` `10` `+` `1``, n))  ` ` `  `# Driver code  ` `if` `__name__ ``=``=` `'__main__'``:  ` `    ``n ``=` `120``;  ` ` `  `    ``print``(countNumbers(``1``, n)); ` `     `  `# This code is contributed by Arnab Kundu `

## C#

 `// C# program to find the number of integers  ` `// from 1 to n which contains digits 0's and 1's only  ` `using` `System; ` ` `  `class` `GFG  ` `{  ` ` `  `// Function to find the number of integers  ` `// from 1 to n which contains 0's and 1's only  ` `static` `int` `countNumbers(``int` `x, ``int` `n)  ` `{  ` `    ``// If number is greater than n  ` `    ``if` `(x > n)  ` `        ``return` `0;  ` ` `  `    ``// otherwise add count this number and  ` `    ``// call two functions  ` `    ``return` `1 + countNumbers(x * 10, n) +  ` `               ``countNumbers(x * 10 + 1, n);  ` `}  ` ` `  `// Driver code  ` `public` `static` `void` `Main()  ` `{  ` `    ``int` `n = 120;  ` ` `  `    ``Console.WriteLine(countNumbers(1, n));  ` `}  ` `}  ` ` `  `// This code is contributed by Ryuga `

## PHP

 ` ``\$n``) ` `        ``return` `0; ` ` `  `    ``// otherwise add count this number and ` `    ``// call two functions ` `    ``return` `1 + countNumbers(``\$x` `* 10, ``\$n``) +  ` `               ``countNumbers(``\$x` `* 10 + 1, ``\$n``); ` `} ` ` `  `// Driver code ` `\$n` `= 120; ` ` `  `echo``(countNumbers(1, ``\$n``)); ` ` `  `// This code is contributed  ` `// by Code_Mech. ` `?> `

Output:

```7
```

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.

My Personal Notes arrow_drop_up Check out this Author's contributed articles.

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.