Count of binary strings of given length consisting of at least one 1

Given an integer N, the task is to print the number of binary strings of length N which at least one ‘1’.

Examples:

Input: 2
Output: 3
Explanation:
“01”, “10” and “11” are the possible strings

Input: 3
Output: 7
Expalnation:
“001”, “011”, “010”, “100”, “101”, “110” and “111” are the possible strings

Approach:
We can observe that:



Only one string of length N does not contain any 1, the one filled with only 0’s.
Since 2N strings are possible of length N, the required answer is 2N – 1.

Follow the steps below to solve the problem:

  • Initialize X = 1.
  • Compute upto 2N by performing bitwise left shift on X, N-1 times.
  • Finally, print X – 1 as the required answer.

Below is the implementation of our approach:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ Program to implement
// the above approach
#include <bits/stdc++.h>
using namespace std;
  
// Function to return
// the count of strings
long count_strings(long n)
{
    int x = 1;
  
    // Calculate pow(2, n)
    for (int i = 1; i < n; i++) {
        x = (1 << x);
    }
  
    // Return pow(2, n) - 1
    return x - 1;
}
  
// Driver Code
int main()
{
    long n = 3;
  
    cout << count_strings(n);
  
    return 0;
}

chevron_right


Java

filter_none

edit
close

play_arrow

link
brightness_4
code

// Java program to implement
// the above approach
import java.util.*;
  
class GFG{
  
// Function to return
// the count of Strings
static long count_Strings(long n)
{
    int x = 1;
  
    // Calculate Math.pow(2, n)
    for(int i = 1; i < n; i++)
    {
       x = (1 << x);
    }
  
    // Return Math.pow(2, n) - 1
    return x - 1;
}
  
// Driver Code
public static void main(String[] args)
{
    long n = 3;
  
    System.out.print(count_Strings(n));
}
}
  
// This code is contributed by Amit Katiyar

chevron_right


Python3

filter_none

edit
close

play_arrow

link
brightness_4
code

# Python3 program to implement
# the above approach
  
# Function to return
# the count of Strings
def count_Strings(n):
      
    x = 1;
  
    # Calculate pow(2, n)
    for i in range(1, n):
        x = (1 << x);
  
    # Return pow(2, n) - 1
    return x - 1;
  
# Driver Code
if __name__ == '__main__':
      
    n = 3;
  
    print(count_Strings(n));
  
# This code is contributed by Princi Singh

chevron_right


C#

filter_none

edit
close

play_arrow

link
brightness_4
code

// C# program to implement
// the above approach
using System;
  
class GFG{
  
// Function to return
// the count of Strings
static long count_Strings(long n)
{
    int x = 1;
  
    // Calculate Math.Pow(2, n)
    for(int i = 1; i < n; i++)
    {
       x = (1 << x);
    }
      
    // Return Math.Pow(2, n) - 1
    return x - 1;
}
  
// Driver Code
public static void Main(String[] args)
{
    long n = 3;
  
    Console.Write(count_Strings(n));
}
}
  
// This code is contributed by Amit Katiyar

chevron_right


Output:

3


Time Complexity: O(N)
Auxiliary Space: O(1)

Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.




My Personal Notes arrow_drop_up

Recommended Posts:


Check out this Author's contributed articles.

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.