华为OJ(求最大连续bit数)

来源:互联网 发布:永清环保怎么样知乎 编辑:程序博客网 时间:2024/05/16 10:21

题目:求最大连续bit数

描述

功能: 求一个byte数字对应的二进制数字中1的最大连续数,例如3的二进制为00000011,最大连续2个1
    
输入: 一个byte型的数字
    
输出: 无
     
返回: 对应的二进制数字中1的最大连续数

知识点位运算运行时间限制10M内存限制128输入

输入一个byte数字

输出

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

样例输入3样例输出2感觉代码应该还有改进的空间,testbits没必要右移至0
#include<iostream>using namespace std;int main(){int number,flag=1,max=0,cnt=0;unsigned int testbits=1;cin>>number;while(testbits){if(number&testbits){if(flag)cnt++;elsecnt=0;if(cnt>max)max=cnt;flag=1;}elseflag=0;testbits=testbits<<1;}cout<<max<<endl;//system("pause");return 0;}


0 0
原创粉丝点击