提交时间:2024-07-21 21:08:08

运行 ID: 158117

#include <iostream> using namespace std; bool isBinarySemiInteger(int n) { if(n==4){ return true; } // 计算n的二进制表示中1的个数 int count = 0; while (n > 0) { count += (n & 1); // 检查最低有效位是否为1 n >>= 1; // 右移一位 } // 判断1的个数是否为2 return count == 2; } int main() { int t; cin >> t; // 输入数据组数 while (t--) { int n; cin >> n; // 每组输入一个数n if (isBinarySemiInteger(n)) { cout << "yes" << endl; // 是二进制半整数 } else { cout << "no" << endl; // 不是二进制半整数 } } return 0; }