
#include <algorithm>
#include <iostream>
using namespace std;
int main() {
int num;
while (cin >> num) {
if (num == 0) {
cout << "0" << endl;
continue;
}
int count = 0;
int maxRes = 0;
while (num) {
if (num & 1) {
count++;
}
else {
count = 0;
}
num = num >> 1;
maxRes = max(maxRes, count);
}
cout << maxRes << endl;
}
}
// 64 位输出请用 printf("%lld")
该C++代码段读取整数,使用位操作计算每个输入数字的二进制表示中连续1的最大个数,并输出这个最大值。当遇到0时,程序会直接输出0并跳过后续处理。
347

被折叠的 条评论
为什么被折叠?



