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

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

 `// C++ 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.` `?>`

## Javascript

 ``

Output:

`7`

Time Complexity: O((log10n))

Auxiliary Space: O((log10n))