华为机试-最大连续bit数(HJ86)

求最大连续bit数

https://www.nowcoder.com/practice/4b1658fd8ffb4217bc3b7e85a38cfaf2?tpId=37&&tqId=21309&rp=1&ru=/ta/huawei&qru=/ta/huawei/question-ranking

纯C

#include <stdio.h>

int main()
{
    int n;
    while(scanf("%d",&n)!=EOF)
    {
        int a[8]={0};
        for(int i=0;i<8;i++)
        {
            if(n&(1<<i)) a[i] = 1;
        }
        int count=0;
        int max=0;
        for(int i=0;i<8;i++)
        {
            if(a[i]==1)
                count++;
            else
                count=0;
            max=max>count?max:count;
        }
        printf("%d\n",max);
    }
}
全部评论
你这代码有问题,在往a[i]里更新的时候应该加个判断更新0;不然后面的输入会保留之前的1导致次数错误
点赞 回复 分享
发布于 2021-03-30 22:41

相关推荐

犹豫的小狐狸刷了100道题:你是我在牛课上见到的最漂亮的女孩了
点赞 评论 收藏
分享
代码飞升:别用口语,后端就写后端,前端就写前端,最后别光后悔
点赞 评论 收藏
分享
评论
1
2
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务