提交时间:2025-05-09 16:50:21

运行 ID: 193109

#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; }