#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;
}
可通过暴力解决,先循环使十进制数转化为二进制,并将其存储在数组里。再循环记录最长连续串参与链接

京公网安备 11010502036488号