题解 | #求最大连续bit数#
求最大连续bit数
https://www.nowcoder.com/practice/4b1658fd8ffb4217bc3b7e85a38cfaf2
#include<stdio.h>
int main(void)
{
int n;
scanf("%d",&n);
int a[100]={0};
int i=0;
int cnt=0;
while(n!=0)
{
a[i++]=n%2;
n/=2;
}
int temp=0;
for(int j=0;j<=i;j++)
{
if((a[j]==1&&a[j-1]==1)||(j==0&&a[j]==1))
{
temp++;
}
else if(a[j]==1&&a[j-1]==0&&j>=1)
{
temp=1;
}
else if(a[j]==0)
{
if(temp>cnt)
{
cnt=temp;
}
}
}
printf("%d",cnt);
return 0;
}
int main(void)
{
int n;
scanf("%d",&n);
int a[100]={0};
int i=0;
int cnt=0;
while(n!=0)
{
a[i++]=n%2;
n/=2;
}
int temp=0;
for(int j=0;j<=i;j++)
{
if((a[j]==1&&a[j-1]==1)||(j==0&&a[j]==1))
{
temp++;
}
else if(a[j]==1&&a[j-1]==0&&j>=1)
{
temp=1;
}
else if(a[j]==0)
{
if(temp>cnt)
{
cnt=temp;
}
}
}
printf("%d",cnt);
return 0;
}