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

• Last Updated : 09 Jun, 2022

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

My Personal Notes arrow_drop_up