Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
193109 | luckypet | 二进制分类 | C++ | 解答错误 | 0 | 0 MS | 248 KB | 1139 | 2025-05-09 16:50:21 |
#include <iostream> #include <string> using namespace std; // 将整数转换为二进制字符串 string toBinary(int num) { if (num == 0) return "0"; string binary = ""; while (num > 0) { binary = to_string(num % 2) + binary; num /= 2; } return binary; } // 计算二进制字符串中11和00的出现次数 pair<int, int> countPairs(const string& binary) { int count11 = 0, count00 = 0; for (size_t i = 0; i < binary.length() - 1; ++i) { if (binary[i] == '1' && binary[i+1] == '1') { count11++; } else if (binary[i] == '0' && binary[i+1] == '0') { count00++; } } return {count11, count00}; } int main() { int a, b; cin >> a >> b; int countA = 0, countB = 0; for (int num = a; num <= b; ++num) { string binary = toBinary(num); auto [count11, count00] = countPairs(binary); if (count11 > count00) { countA++; } else { countB++; } } cout << countA << " " << countB << endl; return 0; }