**PROBLEM LINK**:

Practice

Contest

**Author:** Ayush Nagal

**DIFFICULTY**:

MEDIUM

**PREREQUISITES**:

Bits, Maths

**PROBLEM**:

Given a base-10 integer, n, convert it to binary (base-2). Then find and print the base-10 integer denoting the maximum number of consecutive 1's in n's binary representation.

**EXPLANATION**:

First of all, we need to convert n to binary:

```
int k=n;
string s="";
while(k!=0)
{
int d=k%2;
char t=d+'0';
s=t+s;
k=k/2;
}
```

Now we have the binary representation of n and need to count the number of consecutive 1's in it.

```
int l=s.length();
int c=0,ma=-1;
for(int i=0;i<l-1;i++)
{
if(s[i]==s[i+1] && s[i]=='1')
c++;
else if(s[i]=='1' && s[i+1]=='0')
{
c++;
if(c>ma)
ma=c;
c=0;
}
}
if(s[l-1]=='1')
c++;
if(ma==-1 || c>ma)
ma=c;
```

Here, ma contains the maximum number of adjacent 1's.

**AUTHORâ€™S SOLUTION**:

Authorâ€™s solution can be found here.