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

filter_none

edit
close

play_arrow

link
brightness_4
code

// CPP 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;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# 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

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


PHP

filter_none

edit
close

play_arrow

link
brightness_4
code

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

chevron_right


Output:

7


My Personal Notes arrow_drop_up

pawanasipugmailcom

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.