Open In App

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

Improve
Improve
Like Article
Like
Save
Share
Report

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

Auxiliary Space: O((log10n))



Last Updated : 09 Jun, 2022
Like Article
Save Article
Previous
Next
Share your thoughts in the comments
Similar Reads