目录
牛客HJ86 求最大连续bit数
解析代码
牛客HJ86 求最大连续bit数
求最大连续bit数_牛客题霸_牛客网
解析代码
根据位运算,获取每一位的二进制值。获取第i位的值: (n >> i) & 1或者 n & (1 << i)。如果1连续,则计数累加,如果不连续,则从0开始计数。
#include <iostream>
using namespace std;
int main()
{
int n = 0, cnt = 0, ret = 0;
cin >> n;
for (int i = 0; i < 32; ++i)
{
if (n & (1 << i)) // 如果是1就计数
{
++cnt;
}
else // 如果是0就更新结果,且重新计数
{
ret = max(ret, cnt);
cnt = 0;
}
}
cout << ret;
return 0;
}