Open In App

Length of longest consecutive zeroes in the binary representation of a number.

Improve
Improve
Like Article
Like
Save
Share
Report

We have a number N. Determine the length of the longest consecutive 0’s in its binary representation.

Examples: 

Input  : N = 14
Output : 1
Binary representation of 14 is 
1110. There is only one 0 in
the binary representation.

Input : N = 9 
Output : 2

A simple approach is to traverse through all bits and keep track of the maximum number of consecutive 0s. 

C++




// C++ code to determine Length of
// longest consecutive zeroes in the
// binary representation of a number.
#include <bits/stdc++.h>
using namespace std;
 
int maxZeros(int N)
{
    // variable to store the length of
    // longest consecutive 0's
    int maxm = -1;
 
    // to temporary store the consecutive 0's
    int cnt = 0;
 
    while (N) {
        if (!(N & 1)) {
            cnt++;
            N >>= 1;
            maxm = max(maxm, cnt);
        }
        else {
 
            maxm = max(maxm, cnt);
            cnt = 0;
            N >>= 1;
        }
    }
    return maxm;
}
 
// Driver code
int main()
{
    int N = 14;
    cout << maxZeros(N) << endl;
    return 0;
}


Java




// Java code to determine Length of 
// longest consecutive zeroes in the
// binary representation of a number.
 
public class GFG {
     
    static int maxZeros(int N)
    {
        // variable to store the length of
        // longest consecutive 0's
        int maxm = -1;
       
        // to temporary store the consecutive 0's
        int cnt = 0;
       
        while (N != 0) {
            if ((N & 1) == 0 ) {
                cnt++;
                N >>= 1;
                maxm = Math.max(maxm, cnt);
            }
            else {
       
                maxm = Math.max(maxm, cnt);
                cnt = 0;
                N >>= 1;
            }
        }
        return maxm;
    }
       
    // Driver code
    public static void main(String args[])
    {
         int N = 14;
         System.out.println(maxZeros(N));
     
    }
    // This Code is contributed by ANKITRAI1
}


Python3




# Python3 code to determine Length of
# longest consecutive zeroes in the
# binary representation of a number.
def maxZeros(N):
 
    # variable to store the length
    # of longest consecutive 0's
    maxm = -1
 
    # to temporary store the
    # consecutive 0's
    cnt = 0
    while(N):
        if(not(N & 1)):
            cnt += 1
            N >>= 1
            maxm = max(maxm,cnt)
        else:
            maxm = max(maxm,cnt)
            cnt = 0
            N >>= 1
 
    return maxm
 
# Driver Code
N = 14
print(maxZeros(N))
 
# This code is written by Shrikant13


C#




// C# code to determine Length of
// longest consecutive zeroes in the
// binary representation of a number.
using System;
 
class GFG
{
static int maxZeros(int N)
{
    // variable to store the length
    // of longest consecutive 0's
    int maxm = -1;
 
    // to temporary store the
    // consecutive 0's
    int cnt = 0;
 
    while (N != 0)
    {
        if ((N & 1) == 0 )
        {
            cnt++;
            N >>= 1;
            maxm = Math.Max(maxm, cnt);
        }
        else
        {
            maxm = Math.Max(maxm, cnt);
            cnt = 0;
            N >>= 1;
        }
    }
    return maxm;
}
 
// Driver code
public static void Main()
{
    int N = 14;
    Console.WriteLine(maxZeros(N));
}
}
 
// This code is contributed
// by anuj_67


PHP




<?php
// PHP code to determine Length of
// longest consecutive zeroes in the
// binary representation of a number.
function maxZeros($N)
{
    // variable to store the length
    // of longest consecutive 0's
    $maxm = -1;
 
    // to temporary store the
    // of consecutive 0's
    $cnt = 0;
 
    while ($N)
    {
        if (!($N & 1))
        {
            $cnt++;
            $N >>= 1;
            $maxm = max($maxm, $cnt);
        }
        else
        {
            $maxm = max($maxm, $cnt);
            $cnt = 0;
            $N >>= 1;
        }
    }
    return $maxm;
}
 
// Driver code
$N = 14;
echo (maxZeros($N));
 
// This code is contributed
// by Shivi_Aggarwal
?>


Javascript




<script>
    // Javascript code to determine Length of
    // longest consecutive zeroes in the
    // binary representation of a number.
     
    function maxZeros(N)
    {
        // variable to store the length
        // of longest consecutive 0's
        let maxm = -1;
 
        // to temporary store the
        // consecutive 0's
        let cnt = 0;
 
        while (N != 0)
        {
            if ((N & 1) == 0 )
            {
                cnt++;
                N >>= 1;
                maxm = Math.max(maxm, cnt);
            }
            else
            {
                maxm = Math.max(maxm, cnt);
                cnt = 0;
                N >>= 1;
            }
        }
        return maxm;
    }
     
    let N = 14;
    document.write(maxZeros(N));
     
</script>


Output

1

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



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