华为机试 HJ86 题解 | #求最大连续bit数#
求最大连续bit数
https://www.nowcoder.com/practice/4b1658fd8ffb4217bc3b7e85a38cfaf2
#include <iostream> #include <bitset> #include <string> using namespace std; int main() { int n; while (cin >> n) { // 注意 while 处理多个 case bitset<32> b1(n); int maxCount = 0; int pre = 0; int count = 0; for (int i = 0; i < b1.size(); i++) { if (b1.test(i)) { pre = i; count = 1; } for (int cur = pre+1; cur < b1.size(); cur++) { if (b1.test(cur)) { count++; } else { maxCount = count > maxCount ? count : maxCount; break; } } } cout << maxCount << endl; } }