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

求最大连续bit数

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

#include<bits/stdc++.h>
using namespace std;
int main() {
    int num;    //存放输入的整数
    while(cin>>num) {    //输入一个整数
        bitset<sizeof(int)*8> bit(num);    //将输入的整数num转化为32位2进制数
        int count = 0;    //count为1的最大连续个数
        for(int i=31;i>=0;i--) {    //从高位到低位判断连续的1的个数
            int tmp =0;    //,计数器,存放临时变量
            while(i>=0 && bit[i]) {    //计算从当前二进制位向后连续的1的个数
                tmp++;
                i--;
            }
            count = max(tmp, count);    //count存放连续的1的个数的最大值
        }
        cout<<count<<endl;    //输出二进制数字中1的最大连续数
    }
    return 0;
}
全部评论
bits的长度为什么是sizeof(int)*8
点赞 回复 分享
发布于 2022-10-23 22:46 山东

相关推荐

点赞 评论 收藏
分享
用微笑面对困难:你出于礼貌叫了人一声大姐,大姐很欣慰,她真把你当老弟
点赞 评论 收藏
分享
评论
1
收藏
分享

创作者周榜

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