#include <iostream>
#include <vector>

using namespace std;

int main() 
{
    int a;
    cin>>a;
    int cnt=0,c1=0;
    int num1[1000000],num2[1000000];
    int g=1,p=0;
  //jingen
    while(g!=0)
    {
        g=a/2;
        p=a%2;
        a/=2;
        num1[cnt++]=p;
    }
    for(int i=cnt-1;i>=0;i--) 
    {
        num2[c1++]=num1[i];  
    }
    int ma=0;
    for(int i=0;i<c1;i++)
    {
       
        if(num2[i]==1)
        {
            int j=i;
            int x=0;
            while(num2[j]==1)
            {
                x++;
                j++;
            }
            i=j-1;
            ma=max(ma,x);
        }
    }
     
    cout<<ma;
    return 0;
}

可通过暴力解决,先循环使十进制数转化为二进制,并将其存储在数组里。再循环记录最长连续串参与链接