题解 | #求最大连续bit数#

求最大连续bit数

https://www.nowcoder.com/practice/4b1658fd8ffb4217bc3b7e85a38cfaf2

解题思路

设置一个整型数组用来存储接收的十进制对应的二进制

然后通过循环遍历数组,一个变量计算单次连续出现1的次数,一个变量用于存储出现1的最大次数

#include <stdio.h>

int main() {
    int n[500000]={0};
    int a=0,i=0,num=0,max=0;//a为接受的数字,i为控制循环的,num为存储单次1出现的次数,遇到0就自动归零,max为存储连续1出现次数的最大值
    scanf("%d",&a);
    while(a>0)//十进制转二进制
    {
        n[i]=a%2;
        a/=2;
        i++;
    }
    for(--i;i>=0;i--)//循环遍历数组,--i的目的是因为while循环结束后i的值会多1,因此在循环开始时先自减1,虽然减不减都可以,因为数组初始化时全是0,多一位也是0,但是为了严格一点,就先自减1
    {
        if(n[i]==1)//当遇到1时就num自动增加1
        {
            num++;
        }
        else if(n[i]==0)//当遇到0时,将num与最大值进行比较,如果最大值小于num,则最大值等于num,num置为0
        {
            if(max<num)
            {
                max=num;
            }           
            num=0;
        }
        if(max<num)//当连续出现1的最大值小于num,令max=num
            {
                max=num;
            }  
    }
    printf("%d",max);
    
    return 0;
}

全部评论

相关推荐

行云流水1971:你的简历已经有不错的内容基础,但在岗位匹配度、成果量化、逻辑分层上还有优化空间,我结合产品 / 金融科技类岗位偏好帮你调整: 一、现有问题 & 优化方向 信息冗余:课程 / 学生工作与目标岗位关联弱,可精简; 成果颗粒度不足:部分数据缺少 “对比基准”(比如 “效率提升” 没说之前的情况); 岗位标签弱:产品岗核心能力(如需求闭环、PRD 撰写)体现不够突出。 二、优化后简历(以 “金融科技产品岗” 为例) 教育经历 2023.09-2027.06 郑州轻工业大学(公办一本) | 软件工程 | 本科 核心课程:Java 程序设计、数据库原理、Python(匹配产品岗 “技术理解” 需求) 学习成果:专业核心课 90+,获校级一等奖学金; 学生工作:院学生会主席,统筹 6 场校级活动(覆盖 2000 + 人次),锻炼跨部门协作与项目统筹能力。 实习经历
投了多少份简历才上岸
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

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