栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

HJ86 求最大连续bit数(适当关注)

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

HJ86 求最大连续bit数(适当关注)

描述
求一个int类型数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1

本题含有多组样例输入。

输入描述:
输入一个int类型数字

输出描述:
输出转成二进制之后连续1的个数

示例1
输入:
3
5
200
复制
输出:
2
1
2

说明:
3的二进制表示是11,最多有2个连续的1。
5的二进制表示是101,最多只有1个连续的1。
#include 

#if 0
#define dbg printf
#else
#define dbg
#endif

int main(void)
{
    int max = 0;
    int cnt;
    int num;
    int i, k;
    int out[32] = {0};
    
    k = 0;
    while(scanf("%d", &num) != EOF)
    {
        max = 0;
        cnt = 0;
        i = 0;
        while(i < 32)
        {
            if((num&1)==1 && i<31)
            {
                cnt++;
            }
            else
            {
                if((num&1) == 1)
                {
                    cnt++;
                }
                if(max < cnt)
                {
                    max = cnt;
                }
                dbg("(%d):cnt=%dn", __LINE__, cnt);
                cnt = 0;
            }
            num = num>>1;
            i++;
        }
        dbg("(%d):max=%dn", __LINE__, max);
        out[k] = max;
        k++;
        
    }
    for(i=0; i
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/290001.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号