classSolution { public: vector<string> readBinaryWatch(int num){ vector<string> res; char str[10]; for (int i = 0; i < 1 << 10; i++) { int s = 0; int b = i; // 使用 lowbit 快速计算二进制中 1 的个数 while (b) { s++; b = b & (b - 1); } if (s == num) { int h = i >> 6; int m = i & 63; if (h < 12 && m < 60) { // 用 sprintf 格式化输出 sprintf(str, "%d:%02d", h, m); res.push_back(str); } } } return res; } };