# 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 = 15Output :3Explanation :1, 10, 11 are such integers.Input :N = 120Output :7Explanation :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 <bits/stdc++.h>` `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

`<?php` `// PHP 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` `function` `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` `$n` `= 120;` `echo` `(countNumbers(1, ` `$n` `));` `// This code is contributed` `// by Code_Mech.` `?>` |

## Javascript

`<script>` `// JavaScript 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` `function` `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` `let n = 120;` `document.write(countNumbers(1, n));` `// This code is contributed by Manoj.` `</script>` |

**Output:**

7

**Time Complexity:** O((log_{10}n))

**Auxiliary Space:** O((log_{10}n))